使用 Matlab 绘制三维标量场时,为什么 X 轴与 Y 轴交换?

使用 Matlab 绘制三维标量场时,为什么 X 轴与 Y 轴交换?

当我使用Matlab绘制3d标量场A(i,j,k)(i = 1~31,j = 1~151,k = 1~151)的等值面时,图中索引j对应于X轴,i对应于Y轴。 Matlab如何排列3d数据?

这是我画的图:

这是我画的图

立方体网格为 31x151x151。但图中 X 方向的长度为 151,Y 方向的长度为 31。并且该图是我想要的镜像。

答案1

根据mesh该函数的 Matlab 文档,似乎 Y 轴使用矩阵的第一个索引而不是第二个索引。例如,在(i,j)索引对中,i将在 Y 轴上,j将在 X 轴上。我与同事就此进行了相当长时间的讨论,似乎归结为 Matlab 内部存储矩阵的方式:它存储列列表(列优先顺序),这里有一个非常有趣的解释:http://fr.mathworks.com/help/matlab/matlab_external/matlab-data.html#f22019

TL;DR 第一个维度是列(Y),然后是行(X),然后是所有其它轴(按顺序)。

相关内容