Matlab中的矩阵的单一索引(线性索引)

可参考官方文档:

https://ww2.mathworks.cn/help/matlab/math/matrix-indexing.html

重点说以下线性索引:

可以使用单个下标A(k) 表示matlab矩阵中的元素,MATLAB不会以矩阵和数组在MATLAB命令行窗口中的显示形状存储矩阵和数组,而是会将矩阵和数组存储为单个元素列。这种单个列由矩阵中的所有列组成,没一列都附加到最后一列。

因此,矩阵 A

A = [2 6 9; 4 2 8; 3 5 1]
A =
     2     6     9
     4     2     8
     3     5     1

实际上是以序列形式存储在内存中:2,4,3,6,2,5,9,8,1

矩阵A中位于第3行,第2列的元素(值=5)也可以标识为实际存储序列中的第6个元素。要访问此元素,可以使用标准的A(3,2)语法,也可以使用A(6)。

如果提供多个下标,MATLAB 将会基于分配给数组的维度计算存储列的索引。例如,假定 A 之类的二维数组的大小为 [d1 d2],其中 d1 表示数组中的行数,d2 表示列数。如果提供两个表示行-列索引的下标 (i, j),则偏移为

(j-1) * d1 + i

给定表达式 A(3,2),MATLAB 会将 A 的存储列的偏移计算为 (2-1) * 3 + 3,即 6。从头开始数六个元素即会到达值 5

猜你喜欢

转载自blog.csdn.net/guanguanboy/article/details/83993336
今日推荐