看看冲浪的定义,我发现了这个:
surf(X,Y,Z)使用Z作为颜色数据和表面高度。 X和Y是定义表面的x和y分量的矢量或矩阵。如果X和Y是向量,则长度(X)= n且长度(Y)= m,其中[m,n] =大小(Z)。
对我而言,X看起来是第一个,Y是第二个看起来非常违反直觉,但Z在第一个是Y,在尺寸方面是X秒。
拥有代表真实信息的数据,一直处理这个问题真的很骚扰,不得不重新塑造,以便我的数据在我绘制时应该是这样。
任何人对我都有不错的解释?
答案 0 :(得分:2)
解释可能与您处理矩阵的事实有关。矩阵的第一个索引是指行,它与 y 轴(上下)自然相关联。第二个是列,对应 x 轴(左右)。
无论如何,在Z
中交换 x 和 y 所要做的唯一事情就是转置:使用Z.'
作为输入surf
。
(很充足?): - )
答案 1 :(得分:0)
我的理论是Matlab最初是用FORTRAN编写的,它有一个列主要的顺序。
然后它在C中重写,这是行主要的,但为了向后兼容,列主要顺序保留在Matlab矩阵中。
我非常确定3D图形是直接用C语言编写的。天然连接行主要3D基元与列主要Matlab矩阵可能会在冲浪中产生这种反转。
这只是一个理论,但我想证明是错的!
如果我的理论是正确的,那么用于解释为什么meshgrid应该像Matlab文档中那样的卷积使我成为ROTFL:)