2016-08-31 4 views
0

私はそれをプロットするとかなり粗い表面を示す25x10マトリックスを得ました。 私はより細かいグリッド(しかし、線形補間されていない)のためのより多くのデータポイントで滑らかな表面を作成するためにそれをフィルタリングしたいと思います、私はオープンループのベースとして平滑面を生成するフィルタリングされたデータが必要です。誰かが私に良いアプローチを勧められますか?その結果が今のようになります。滑らかなアウト/フィルタマトリックスデータ

surface 乾杯

EDIT:griddata方法で「キュービック」は、より望ましい結果のように見えるが、それはまだあまりにも多くのデータを握っています。下の画像は、立方体と望みの結果で結果を視覚化します。目標は表面にはっきりとしたピークを見ないことです。

Desired result

+1

なぜ非線形補間を使用しないのですか?あなたは 'interpine'を' spline'や 'cubic'メソッドで使うことができます – obchardon

答えて

1

使用griddata細かいメッシュ上にデータを補間します。 x、y、zがあなたのデータであれば、細かいメッシュ(xq、yq)を定義してそのデータを補間/補外することができます。デフォルトのメソッドは '線形'なので、サーフェスプロファイルをスムーズにしたいので、 'natural'のような別のメソッドを指定する必要があります。

[xq, yq] = meshgrid(0:20:6000, 0.2:0.01:1); 
zq = griddata(x(:), y(:), z(:), xq, yq, 'natural'); 
surf(xq, yq, zq, 'EdgeColor', 'none') 
+0

あなたの応答に感謝しますが、グリッドデータを行列でどうやって使うのですか?私はx、y、z値を持っていません。 – Bart

+0

あなたのプロットはxとyに任意の値を持つようには見えません。どのようにデータを持ち、それをどのようにプロットしていますか?とにかく、xとyをどこにも持っていなければ、 'meshgrid'でもそれらを作ることができますが、xとyの大きさはあなたのz(25x10)のようになります。例えば、 '[x、y] = meshgrid(240:240:6000、0.1:0.1:1)'となります。次に、同じサイズの3つの行列があり、上のコードはうまくいくでしょう。 – erfan

+0

私は後でxとyの値を指定することを計画していました。これは、行列の形状とデータが主な優先事項であるため、今私が望むxとyの値を使うことができます。私はmeshgridを使って2つの値を作成して助言しましたが、マトリックス全体がNaNで埋められています。なぜなら、その原因はzqとyqの値にあると思います。 – Bart