2016-08-17 7 views
0

Mathematicaで関心$ f(x、y)$の関数を数値的に計算しました。一貫性のために、私はプロットのためにMatlabを使用したいと思います。行列データ表現をmeshgridに変換する

私は、マトリクス状に私の機能をエクスポート:

test = 

-1.0000 -1.0000 -0.4864 
-1.0000 -0.6000 -0.2804 
-1.0000 -0.2000 -0.0462 
-1.0000 0.2000 -0.0462 
-1.0000 0.6000 -0.2804 
-1.0000 1.0000 -0.4864 
-0.6000 -1.0000 -0.2997 
-0.6000 -0.6000 -0.1526 
-0.6000 -0.2000 0.1118 
-0.6000 0.2000 0.1118 
-0.6000 0.6000 -0.1526 
-0.6000 1.0000 -0.2997 
-0.2000 -1.0000 -0.1809 
-0.2000 -0.6000 -0.0939 
-0.2000 -0.2000 -0.0046 
-0.2000 0.2000 -0.0046 
-0.2000 0.6000 -0.0939 
-0.2000 1.0000 -0.1809 
0.2000 -1.0000 -0.1809 
0.2000 -0.6000 -0.0939 
0.2000 -0.2000 -0.0046 
0.2000 0.2000 -0.0046 
0.2000 0.6000 -0.0939 
0.2000 1.0000 -0.1809 
0.6000 -1.0000 -0.2997 
0.6000 -0.6000 -0.1526 
0.6000 -0.2000 0.1118 
0.6000 0.2000 0.1118 
0.6000 0.6000 -0.1526 
0.6000 1.0000 -0.2997 
1.0000 -1.0000 -0.4864 
1.0000 -0.6000 -0.2804 
1.0000 -0.2000 -0.0462 
1.0000 0.2000 -0.0462 
1.0000 0.6000 -0.2804 
1.0000 1.0000 -0.4864 

testは列がxyf(x,y)ある36x3行列、であるように。今私はそれをプロットする必要があります。

ただし、me​​shgridの形式ではありません。任意の考え、どのように迅速にcontour機能によってプロットすることができる形式でそれを変換するには?

+1

なぜあなたは 'meshgrid'形式でそれを必要としますか?どうして 'contour(f)'だけではないのですか? – Suever

+0

それは非常に奇妙な結果をもたらします。私はMathematicaでプロットしたので、間違っていると確信しています –

+1

'y、x、f(x、y)'としてプロットしますか? –

答えて

2

データが通常の場合(データセットはmeshgridと一致しますが、ベクター形式の場合)、reshapeを使用できます。

xgrid=6; 
ygrid=6; 
contour(reshape(test(:,1),xgrid,ygrid),reshape(test(:,2),xgrid,ygrid),reshape(test(:,3),xgrid,ygrid)) 

別のオプションは、またあなたの表面が凸でない場合は、https://www.mathworks.com/matlabcentral/fileexchange/38858-contour-plot-for-scattered-data/content/tricontour.m

tricontourを見つけることができます不規則なデータセット

tri = delaunay(test(:,1),test(:,2)); 

figure; 
tricontour(tri,test(:,1),test(:,2),test(:,3)); 

のために動作しますtricontourある

は、あなたがする必要がありますの性質のため、一部の三角形分割を triから削除する

+1

良いアイデアですが、OPは明らかに2d格子のメッシュを持っています(そしてそれでも普通です!)、彼らはポイントを注文する際には物流上の困難に直面しています。 –

+0

Andras Deak、correct。 Dohyn、それはちょうど私が探しているわけではありません。しかし、参照のためのものです –

+0

その場合、 'reshape'が動作します。私の編集した投稿をチェックしてください。 'xgrid'と' ygrid'を交換する必要があります。 – Dohyun

関連する問題