【发布时间】:2021-12-05 09:44:14
【问题描述】:
给定一个形状数组3,2,2
np.array([[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]])
我想把它重塑成2,2,3的形状。
在下游,这个 reshape 数据将在 MATLAB 中处理,并且由于某种原因,MATLAB-Package 要求对数组进行整形2,2,3。
在 MATLAB 中,预期的输出应该是
val(:,:,1) =
1 2
3 4
val(:,:,2) =
5 6
7 8
val(:,:,3) =
9 10
11 12
简单地重塑 arr.reshape(2,2,3) 并不会产生我想要的效果。
更新: @hpaulj 提案产生
val(:,:,1) =
1 3
2 4
val(:,:,2) =
5 7
6 8
val(:,:,3) =
9 11
10 12
【问题讨论】:
-
arr.reshape(2,2,3)产生了什么,为什么会出错? -
也可以使用
order。 Reshape 不足以匹配 numpy 和 matlab -
您将如何传输阵列?
scipy.io.savemat可以进行所需的转换。 -
感谢@hpaulj,我计划使用 np.save 功能
-
你会如何用 Matlab 阅读它?