2016-12-26 9 views
2

ランダム変数Y、X1、X2(1000x1)ベクトルを持つガウス分布に似た3Dプロットを生成しました。 Yは垂直軸上にあり、X1およびX2は水平である。3変数のガウス曲線(Gaussian Contour plot) - MATLAB

具体的には、これは私がプロットに使用するコードです:

plot3(x(:,1),x(:,2),y,'.') 

作成されたグラフは、このフォームがあります:

3D - Gaussian

私も生産したいどのようなことは何かでありますそのように:

Contour - Gaussian

しかし、私はこのコードを使用する場合:輪郭(線48) Zは、少なくとも2×2の行列でなければなりませんを使用して

エラー:

contour(x(:,1),x(:,2),y); 

をIメッセージを受け取ります。

私は実際にその問題を解決する方法を得ていない、私はZがYだと仮定しますが、少なくとも2x2でなければならない理由は分かりません。とにかく、どんな助けも大歓迎です。

答えて

0

散在したデータ上に輪郭を作成することはできません。グリッドが必要です。 (ここでは、ドメインを例として[-2,2]x[-2,2]です)griddataを使用して、XYドメインでNxNサンプルのグリッド上のデータを補間することができる:散乱データhereを補間する方法について

N = 200; 
xi = linspace(-2, 2, N); 
yi = linspace(-2, 2, N); 
[XI, YI] = meshgrid(xi, yi); 
ZI = griddata(x(:,1), x(:,2), y, XI, YI, 'v4'); 
contour(XI,YI,ZI); 

詳細情報。