MATLAB数组的一些操作
1 数组元素位置
数组从1开始索引,区别Python和C/C++从0开始索引。例如数组A = [1 3 5;2 4 6],其中1是第一行第一列的元素,非第0行第0列元素。
2 二维数组下标和线性索引装换
2.1.1 数组的元素位置和线性索引位置都能得到数值
例如上面的A元素,其中3是第1行第2个,同样在线性索引中是第3个,即有
A(1,2)=A(3)
。
2.1.2 线性索引和行列的关系
2.1.3 下标转换为线性索引sub2ind()函数
下标转换为线性索引(subscripts to linear indices)函数sub2ind(),其中:
1、使用方法:
sub2ind([矩阵行数,矩阵列数],[下标行集合],[下标列集合])
2、返回结果:结果和输入的下标类型是一致的,即下标是逗号的行向量(2Xn),则结果就是一维行索引(1Xn);若输入的是分号的列向量(nX2)得到的结果为一维列向量(nX1)索引
3、以上图的6,11和16为例,使用
sub2ind([4,5],[2,3],[2,3])
求得6和11,16(行向量)如图左,使用
sub2ind([4,5],[2;3],[2;3])
求得6和11,16(列向量)如图右。
2.1.4 线性索引转换为下标ind2sub()函数
线性索引转换为下标(linear indices to subscripts)的ind2sub()函数。
1、用法ind2sub([矩阵行数,矩阵列数],[线性索引集合]),同样输出结果同输入结果类型一致。
2、输出结果用一个变量去获取,得到的还是索引值
3、输出结果和输入类型一致,输入为
行索引
,输出结果为行下标集合
4、输入为列索引,输出为
列下标
集合
tips:总结,按行输入的排列[行;列]中间用分号,形成2Xn的行向量;按列的索引[行,列]中间用逗号,形成nX2的列向量。理解即可,行和行组合成二维下标行向量当然是按行排(换行,用分号换行),列和列组成二维列向量当然按列排(逗号按列衔接)。