0

サイズ 3xN の順序付けられていない配列があり、データの等高線図をプロットしたいと考えています。やってみると

contourf(pnts(1,:),pnts(2,:),pnts(3,:));

Matlab でエラーが発生します。contourf1xN 配列を必要とせず、行列を描画することを好むことがわかります。に収まるようにデータを再配置するにはどうすればよいcontourfですか? 私はそれを達成していないようです。

私は実際にデータをどのように並べるべきかを理解していないようですcontourf。ヒントをいただければ幸いです。私のデータは、この投稿にあるものと似ている可能性がありますが、どのような形になるかはわかりません。投稿の画像:

ここに画像の説明を入力

私の問題は、定義済みの形状がないことにあります。私が見つけたすべての例はmeshgrid、x と Y の a を持つ星で、Z 値を取得しますが、私の X と Y の値は「境界付きランダム」と名付けることができます。サイズより大きくないことは知っていますが、それについて詳しくは知りません。

編集 データ: http://pastebin.com/uUxJzttw Matlab に直接コピーして貼り付けると、変数として保存されます。

4

1 に答える 1

1

contourf(X,Y,Z)入力 X と Y は単調に増加する必要があり、 を使用griddataして、散らばったデータ ポイントをグリッド上のポイントのセットに変換できます。

N = 20;
xq = [0:1/N:1] * (max( data(1,:) )-min( data(1,:) )) + min( data(1,:) );
xq = repmat( xq, [1 N] );
yq = [0:1/N:1]' * (max( data(2,:) )-min( data(2,:) )) + min( data(2,:) );
yq = repmat( yq, [N 1] );
vq = griddata(data(1,:),data(2,:),data(3,:),xq,yq);
contourf(xq, yq, vq);

N=20 と 30 でデータを試しました。N=20 は約 20 秒かかり、N=30 は 1 ~ 2 分です。

于 2013-04-11T17:04:22.583 に答える