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

Posted 飞凡可期

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的reshape和matlab的reshape,我们不一样的主要内容,如果未能解决你的问题,请参考以下文章

无线智联-程序篇:让python与matlab牵手

python与matlab的优势对比

python复数情况下argmax和matlab中max函数的区别

Python-三元运算符和lambda表达式

如何用MATLAB核心运行Python代码来加速计算?

为啥matlab和python中的特征向量计算不匹配?