八度3D网格,来自文件的数据

时间:2013-06-01 18:13:23

标签: plot 3d octave mesh

我有一个包含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));  

我遇到的问题是,我总是收到错误:

  

rows(z)必须与length(y)相同,列(z)必须与length(x)相同。

它适用于函数plot3(),但我想要一种网格类型的图。

1 个答案:

答案 0 :(得分:1)

问题在于mesh(X,Y,Z)期望使用XY生成X = meshgrid(x)Y = meshgrid(y)矩阵,其中x和{ {1}}仅包含唯一的点。您的数据基本上已经定义了meshgrid,但很难将其删除。

我建议使用y

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或类似的东西。