1

密度、次元、値の 3 つの列を持つ大きなファイルがあります。
例:

10 0.3 200  
10 0.4 300  
20 0.3 250  
20 0.4 320 

私は 3D プロットを描画しようとしています -mesh()次のように、オクターブで関数を 使用してメッシュします。

data = load ("file.txt");   
mesh(data(:,1), data (:,2), data (:,3));  

私が抱えている問題は、常にエラーが発生することです:

行 (z) は長さ (y) と同じでなければならず、列 (z) は長さ (x) と同じでなければなりません。

functionplot3()で動作しましたが、メッシュのようなプロットが必要です。

4

1 に答える 1

1

問題は、and whereを使用してand行列が生成され、一意のポイントのみが含まれることmesh(X,Y,Z)を期待していることです。あなたのデータは基本的にすでにメッシュグリッドを定義していますが、それを引き出すのは困難です。XYX = meshgrid(x)Y = meshgrid(y)xy

次のように使用することをお勧めしreshapeます:

X = reshape(data(:,1),m,n);
Y = reshape(data(:,2),m,n);    % might be reshape(data(:,2),n,m)
Z = reshape(data(:,3),m,n);
mesh(X,Y,Z);

この場合、 にm一意の値がYあり、 にn一意の値があると仮定していますX。mesh asmesh(X',Y',Z)またはそのようなものへの呼び出しで、これらを転置する必要がある場合があります。

于 2013-06-09T17:48:02.677 に答える