python的reshape和matlab的reshape,我们不一样

python的变维度:

X.shape = (a,b,c)这种操作,比如(4,3,2),他是先切分4,然后3,然后2;; 2是连续的值, 4和3维度不是。

这个和matlab是不一样的!!!

惨痛的教训,定位了一个下午问题,泪流满面。教训式知识的迁移不是“理所当然”的。管中窥豹,从这里可以想想想要做迁移学习的重要性,和坑位之多,之隐蔽,之深刻。

举例

python:
a = np.array(range(24))
a.shape = (4,3,2)

array([[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15],
[16, 17]],
[[18, 19],
[20, 21],
[22, 23]]])

matlab:
a = [1:24]
a.reshape(4,3,2)
reshape(a,[4,3,2])

ans(:,:,1) =

 1     5     9
 2     6    10
 3     7    11
 4     8    12

ans(:,:,2) =

13    17    21
14    18    22
15    19    23
16    20    24

总结:

python维度shape,类似“由整体到局部,越切越小”, 最小维度才是连续分配的维度。
matlab维度shape,类似“由局部到整体,越切刀越大”, 最大维度才是连续分配的维度。-列优先准则;

你可能感兴趣的:(python,解Bug,python,matlab,开发语言)