所以我发现了这个:
转换 MATLAB 代码时,可能需要先将矩阵整形为线性序列,执行一些索引操作,然后再整形。由于 reshape (通常)在同一存储上生成视图,因此应该可以相当有效地执行此操作。
请注意,Numpy 中 reshape 使用的扫描顺序默认为“C”顺序,而 MATLAB 使用 Fortran 顺序。如果您只是简单地转换为线性序列并返回,这无关紧要。但是,如果您要从依赖于扫描顺序的 MATLAB 代码转换整形,那么这个 MATLAB 代码:
z = reshape(x,3,4);
应该成为
z = x.reshape(3,4,order='F').copy()
在 Numpy 中。
mafs
当我在 MATLAB 中执行以下操作时,我有一个名为 的多维 16*2 数组:
mafs2 = reshape(mafs,[4,4,2])
我得到的东西与我在 python 中所做的不同:
mafs2 = reshape(mafs,(4,4,2))
甚至
mafs2 = mafs.reshape((4,4,2),order='F').copy()
对此有什么帮助吗?谢谢你们。