matlab 数据存储是列优先的,看图

matlab 默认的dimension 指标从1开始,例如sum函数,不指定dimension 就默认对第一个维度求和,被求和掉的应该是内存连续的区域。也就依次存放a(1,1,1),a(2,1,1),····,然后是a(1,2,1),a(2,2,1),```,然后是a(1,1,2),a(2,1,2),```a(1,2,2),a(2,2,2),```

C语言是行优先,a[i][j][k],i,j,相同,k不同,k不同的连续存储,然后续存j+1的(具体大小端另外说—);

 

下面是转载的,总结的很到位

 

涉及到在计算机中使用矩阵时,首先会碰到存储矩阵的问题。因为计算机存储空间是先后有序的,如何存储A[m*n]的m*n个元素是个问题,一般有两种:按行优先存储和按列优先存储。

row-major:存成a11,a12,...,amn的顺序。
     PASCAL, C/C++,, Python语言中,数组按行优先顺序存储。
     行优先顺序推广到多维数组,可规定为先排最右的下标。
column-major:存成a11,a21,...,amn的顺序。
    FORTRAN语言,Matlab中,数组按列优先顺序存储。
    列优先顺序推广到多维数组,可规定为先排最左的下标。

For example:
序列 A = [1,2,3,4],用Matlab 和 Python 分别reshape为2*2大小:
Matlab中 reshape(A, [2 2]), 得到 [[1 3] [2 4]]
Python中 A.reshape(2,2),    得到[[1 2] [3 4]]
————————————————
版权声明:本文为CSDN博主「Andrew_Zhu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/duanlangzhuifeng/article/details/11727513

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值