X (位置)、Y (位置) の 3 つのデータ ベクトルがありますが、どちらも等間隔ではなく、Z (各位置での対象の値) です。Z入力に行列が必要なため、contourfを試しましたが、うまくいきません。
質問する
30362 次
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 に答える