我有一个7x5x4的T矩阵,我从我运行的脚本中获得。我的最终目标是绘制一个3D图,显示立方体各个方面的温度,如果我可以,我也想了解内部温度。但是,现在如果我可以在任何平面上获得温度分布视图,我会很高兴(比如说在飞机上(i,j,1))。我正在运行以下代码,但我收到错误:
数据维度必须同意
请帮我解决这个问题
DX=0.1; % step size
DY=0.1;
DZ=0.1;
Lx= 0.6; %length along x-axis in m
Ly=0.4; %length along y-axis
Lz=0.3; %length along z-axis
X=0:DX:Lx;
Y=0:DY:Ly;
Z=0:DZ:Lz;
[xx,yy,zz]=meshgrid(X,Y,Z);
figure
surf(xx,yy,T(:,:,1));
答案 0 :(得分:1)
使用给定的代码(x
- > X
除外,y
- > Y
和z
- > {{1}在Z
调用中),meshgrid
的三个输入的大小为5x7x4,5x7x4和7x5。这三个输入必须具有相同的大小,并且是二维矩阵。另一种选择是使前两个参数为向量
一个解决方案:
surf
另一种解决方案:
[yy,xx,zz]=meshgrid(Y,X,Z);
surf(xx(:,:,1),yy(:,:,1),T(:,:,1));
MATLAB的文档和参数顺序相当混乱......他们倾向于索引surf(Y,X,T(:,:,1));
。因此,您定义为T(y,x,z)
的确是X
,反之亦然。 x轴是水平的,第二个矩阵索引是水平的。
关于绘制你的音量:这个on the File Exchange有一些非常好的工具。