Plot 倍频程3D网格,来自文件的数据
我有一个大文件,有3列:密度、维度、值。Plot 倍频程3D网格,来自文件的数据,plot,3d,octave,mesh,Plot,3d,Octave,Mesh,我有一个大文件,有3列:密度、维度、值。 例如: 我正在尝试使用八度音阶的mesh()函数绘制3d plot-mesh,如下所示: data = load ("file.txt"); mesh(data(:,1), data (:,2), data (:,3)); 我的问题是,我总是遇到错误: 行(z)必须与长度(y)相同,列(z)必须与长度(x)相同 它使用函数plot3(),但我想要网格类型的绘图 问题在于mesh(X,Y,Z)期望使用X=meshgrid(X)和Y=meshgr
例如: 我正在尝试使用八度音阶的
mesh()
函数绘制3d plot-mesh,如下所示:
data = load ("file.txt");
mesh(data(:,1), data (:,2), data (:,3));
我的问题是,我总是遇到错误:
行(z)必须与长度(y)相同,列(z)必须与长度(x)相同
它使用函数
plot3()
,但我想要网格类型的绘图 问题在于mesh(X,Y,Z)
期望使用X=meshgrid(X)
和Y=meshgrid(Y)
生成X
和Y
矩阵,其中X
和Y
仅包含唯一点。您的数据基本上已经定义了网格,但很难将其导出
我建议将重塑为:
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);
在这种情况下,假设在Y
中有m
唯一值,在X
中有n
唯一值。在调用mesh时,您可能需要将它们转换为mesh(X',Y',Z)
或类似的内容。是的,重塑()是答案,我已经做到了,但谢谢。
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);