Matlab多维矩阵在内存中存储顺序是按照从前到后每列每列顺序存储的,当第一个维度数据存满后,第二个维度数据增加一,依次类推,在涉及到高维(至少三维)矩阵时,了解到数据的存储顺序对于索引数值来说有很大用处。

(1)二维数组

按上述说的,二维数组的存储方式也是先列后行。比如生成5*5的矩阵如下:

for i=1:5

for j=1:5

aa(i,j)=rand();

end

end

得到:

aa =

0.3998    0.2599    0.8001    0.4314    0.9106

0.1818    0.2638    0.1455    0.1361    0.8693

0.5797    0.5499    0.1450    0.8530    0.6221

0.3510    0.5132    0.4018    0.0760    0.2399

0.1233    0.1839    0.2400    0.4173    0.0497

明显总共有25个数据,那么内存中的顺序就为先第一列值,接着第二列值,等等。当索引时,aa(1) = 0.3998,aa(10) = 0.1839(注意不是0.8693,)0.8693应该是aa(22)。

(2)三维数组

二维数组相对简单,当维数高于3以后,就相对复杂了。比如还是生成随机三维矩阵如下:

for i=1:5

for j=1:5

for k=1:5

ss(i,j,k)=rand();

end

end

end

得到:

ss(:,:,1) =

0.9027    0.9001    0.2417    0.9561    0.8212

0.7317    0.7447    0.6256    0.4868    0.5108

0.8116    0.5502    0.4709    0.1707    0.4302

0.1111    0.6028    0.3188    0.8010    0.5785

0.5211    0.3955    0.9133    0.6797    0.4942

ss(:,:,2) =

0.9448    0.3692    0.4039    0.5752    0.0154

0.6477    0.1890    0.7802    0.4359    0.8176

0.5328    0.6225    0.2305    0.2277    0.1848

0.2581    0.7112    0.4242    0.0292    0.2373

0.2316    0.3674    0.7962    0.1366    0.7791

ss(:,:,3) =

0.4909    0.1112    0.0965    0.0598    0.0430

0.4509    0.6868    0.0811    0.4468    0.7948

0.3507    0.5870    0.8443    0.4357    0.9049

0.4087    0.2217    0.5079    0.9289    0.4588

0.4889    0.9880    0.0987    0.7212    0.7150

ss(:,:,4) =

0.4893    0.7803    0.1320    0.2348    0.1690

0.5470    0.1835    0.9294    0.3063    0.6443

0.9390    0.2077    0.1948    0.3111    0.9797

0.5949    0.1174    0.0855    0.7303    0.9631

0.6241    0.0377    0.2619    0.1068    0.9037

ss(:,:,5) =

0.3377    0.3897    0.9421    0.3532    0.6491

0.2963    0.3685    0.7757    0.5085    0.3786

0.8759    0.3012    0.2259    0.9234    0.4389

0.2622    0.2967    0.2625    0.4886    0.5468

0.6791    0.8852    0.3354    0.6538    0.8909

好了,那么存储的顺序是什么样子的呢,还是那样,假设一般维数矩阵为

(i,j,k,m,n...)的时候,都是先前面的排列,排满了接着再往后面排,这样就是先排i=1:5的值,j=k=1,排完j加1,再排i=1:5,等等。这样排列的数据就为:

0.9027

0.7317

0.8116

0.1111

0.5211

0.9001

0.7447

0.5502

0.6028

0.3955

0.2417

0.6256

0.4709

0.3188

0.6797

..........

检验一下,总共数据125个吧,那么试试ss(10) = 0.3955,去对应一下位置看看,ss(100) =  0.9037,再去对应一下位置看看,ok,差不多就是这么排的。

在高维的矩阵一次类推了,先前面的排,排完往后面进位后继续排,了解了排列的顺序,在涉及到高维索引数据时很有用的。

matlab如何持续存贮多维矩阵,matlab多维矩阵在内存中存储顺序相关推荐

  1. linux用户密码转换为明文,Linux运维知识之linux下抓取内存中明文密码mimipenguin

    本文主要向大家介绍了Linux运维知识之linux下抓取内存中明文密码mimipenguin,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 下载地址:https://githu ...

  2. C语言中 二维数组在内存中的存放顺序是,在计算机中二维数组的元素是按行顺序存放的,即在内存中,先顺序存放二维数组第一行的元素,再顺序存放二维数组第二行的元素,以此类推 答案:对...

    相关问题 服装时尚流行趋势包含哪些元素 中国大学MOOC: 在本征半导体中掺入三价元素的杂质半导体的自由电子是( ). 下列说法正确的有( ).: 说法 逻辑 关系 上 数据 结构 类 线性 结构 结 ...

  3. python定义二维数组_二维数组的定义、初始化和输出,C语言二维数组详解

    本节学习二维数组.二维数组与一维数组相似,但是用法上要比一维数组复杂一点.后面的编程中,二维数组用得很少,因为二维数组的本质就是一维数组,只不过形式上是二维的.能用二维数组解决的问题用一维数组也能解决 ...

  4. 多维数组之二维数组传参、返回值、申请内存问题

    目录 多维数组 存储顺序 二维数组基础知识 数组名 下标 指向数组的指针 二维数组使用 初始化 作为函数参数的二维数组 二维数组返回值与申请内存问题 多维数组 如果某个数组的维数不止1个,它就被称为多 ...

  5. 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )

    文章目录 一.二维数组 1.二维数组声明及初始化 2.二维数组遍历 3.二维数组排序 二.完整代码示例 一.二维数组 前几篇博客中 , 介绍的是指针数组 ; 指针数组 的 结构特征 是 , 数组中的每 ...

  6. c++二维数组、二维指针、数组指针、指针数组

    一.二维数组 1.定义: //方法一 int arr1[2][3]; //方法二 int arr2[2][3] = { {1,2,3},{4,5,6} }; //方法三 int arr3[2][3] ...

  7. mysql怎样存储二维数组_二维数组存储

    windows栈结构:向低地址处增长 如上图,首先定义一个二维数组 M[2][3] = {1,2,3,4,5,6},其首地址M[0][0]为:0x0012FE44,其元素依次向低地址方向存储.内存中存 ...

  8. matlab 把图像变成二维的,matlab图像怎么变成二维矩阵

    求:matlab二维直方图图像分割程序.. 我给你个网站``里面的教学很详细~~希望能帮到你~~~~反正里面的软件教程很多``就是不知道有没你要找的``如果有~~给我加分哈``http://tech. ...

  9. matlab怎么输入二维数组,MATLAB二维数组(矩阵)的创建

    MATLAB 二维数组与矩阵之间有很大的相关性,二维数组是由实数或复数排列成矩形构成的,而且从数据结构上看,矩阵和二维数组没有区别. 本节将讲解 MATLAB 二维数组的两种创建方式. 直接输入 矩阵 ...

  10. 备战数学建模1——MATLAB矩阵,二维图、三维图!(超级全面易懂)

    目录 一.矩阵超级基础的内容 1.创建一个1行6列的矩阵 2.对矩阵中每个元素都加3 3.plot函数作图. 4.多维矩阵与常见运算 5.矩阵乘法,和矩阵点乘 6.使用矩阵A对方程A*x= b求解 7 ...

最新文章

  1. Go在Ubuntu 14.04 64位上的安装过程
  2. 《瓦森纳协定》——光刻机为什么就是不卖给中国!
  3. POJ1703带权并查集(距离或者异或)
  4. python 动态规划例子
  5. P1207 双重回文数
  6. The Web Audio autoplay policy will be re-enabled in 音频无法播放
  7. modbus rtu java 通讯_android Modbus Rtu 通讯例子
  8. 7-3 凸多边形最优三角剖分 (10 分)(思路+详解+分析题意+动态规划)Come Baby!!!!!!!!!
  9. php变量作用域(花括号、global、闭包)
  10. harbor安装_Harbor简单安装部署,镜像仓库存储使用阿里云OSS
  11. JS 语法糖 0 —— 解构
  12. android peopleactivity.java,Android面试基础篇---Activity(上)
  13. symfony3 使用命令行工具生成Entity实体所踩的坑
  14. JavaWeb使用cookie实现记住密码,密码加密
  15. shell脚本大全-个人收藏
  16. (三) SiamRPN从论文角度介绍
  17. 飞秋等级授权码_观点 | 谈谈网络安全等级保护与密码法
  18. SAP采购订单控制价格是否可以修改增强 LV69AFZZ
  19. 多少人败给了一个字:等……
  20. TypeScript 研发规约落地实践

热门文章

  1. 全球十大数据治理解决方案提供商
  2. Rust: codewars的Sum by Factors
  3. Redis: 为行情数据库设计键值
  4. 何为领导力 —— 《Working Backwards》书评
  5. 可用性SLA还不懂?看完这个故事就懂了........ | 凌云时刻
  6. 【优化算法】寄生-捕食优化算法(PPA)【含Matlab源码 1445期】
  7. 【气动学】基于matlab导弹拦截计算方法【含Matlab源码 982期】
  8. 【瑕疵检测】基于matlab Gabor滤波布匹瑕疵检测【含Matlab源码 407期】
  9. if __name__ == __main___if __name__ == #x27;__main__#x27;: 究竟起什么作用,阅读本文后,其他文章不必再看...
  10. 机器学习做自动聊天机器人_聊天机器人业务领袖指南