5

X (位置)、Y (位置) の 3 つのデータ ベクトルがありますが、どちらも等間隔ではなく、Z (各位置での対象の値) です。Z入力に行列が必要なため、contourfを試しましたが、うまくいきません。

4

2 に答える 2

6

等高線図の場合、実際には z 値の行列、またはグリッドで評価された z 値のセット (ベクトル) が必要です。グリッド上の (X,Y) 点 (つまり、所有していると主張するもの) で分離された Z 値を使用して等高線を定義することはできません。

生成プロセス (または関数) に (x,y) ポイントのグリッドの値を提供させる必要があります。

そうでない場合は、@nateが正しく指摘したように、不均一なデータからサーフェスを作成し、 そのサーフェスに等高線を描くことができます。

次の (ランダムな) 例を考えてみましょう。

N = 64; % point set
x = -2 + 4*rand(N,1); % random x vector in[-2,2]
y = -2 + 4*rand(N,1); % random y vector in[-2,2]

% analytic function, or z-vector
z = x.*exp(-x.^2-y.^2);

% construct the interpolant function
F = TriScatteredInterp(x,y,z);

t = -2:.25:2; % sample uniformly the surface for matrices (qx, qy, qz)
[qx, qy] = meshgrid(t, t); 
qz = F(qx, qy);

contour(qx, qy, qz); hold on; 
plot(x,y,'bo'); hold off

円は、(x,y,z)ポイントごとの値を持つ元のベクトル ポイント、内挿サーフェスのコンター上のコンターに対応します。 ここに画像の説明を入力 ここに画像の説明を入力

于 2012-09-27T06:27:01.783 に答える