matlab和numpy reshape 转换

问题描述:
matlab的reshape转换是从列转换的,而numpy的reshape是从行转换的,故在将matlab代码转为python代码时会存在问题。
如果使用reshape转换后维度虽然一致,元素不对。

解决方式如下:

python

res = np.reshape(numpy矩阵, 维度, 维度, order='F')
x = np.arange(0,24)
y = np.reshape(x, (2,3,4), order='F')
print(y.shape)
print(y)
(2, 3, 4)
[[[ 0  6 12 18]
  [ 2  8 14 20]
  [ 4 10 16 22]]

 [[ 1  7 13 19]
  [ 3  9 15 21]
  [ 5 11 17 23]]]

matlab

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

x =19

     0     1     2     3     4     5     6     7     81018

     9    10    11    12    13    14    15    16    171924

    18    19    20    21    22    23

reshape(x,2,3,4)
ans(:,:,1) =

     0     2     4
     1     3     5


ans(:,:,2) =

     6     8    10
     7     9    11


ans(:,:,3) =

    12    14    16
    13    15    17


ans(:,:,4) =

    18    20    22
    19    21    23
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值