1.矩阵索引的概念
如果矩阵是一个电影院,那么矩阵索引就是每个座位的编号,每个观众都可以通过这个编号找到自己的位置,同样的,通过矩阵索引可以找到每个元素的位置。
2.矩阵索引的表达方法
例如,对于1*4的矩阵A=[5 6 7 8],A中第1行第2列的元素是6,记作:
A(1,2)
那么返回值为6;
说明,索引方式是使用小括号,把行序号和列序号分别作为第一个和第二个参数,这种索引方式称为下标索引(也叫组合索引)。
3.矩阵元素的修改
例如,对于1*4的矩阵A=[5 6 7 8],修改A中第1行第2列的元素为10,记作:
A(1,2)=10
那么返回值为:A=[5 10 7 8]。
4.线性索引
除了上面所讲的下标索引,还有另一种矩阵索引方式,称为,线性索引;
线性索引,同样使用小括号,把元素序号作为唯一的输入参数,这里的所说的元素序号是指,把矩阵所有元素按列优先排列成一字长蛇阵,某一元素排在第n个位置,那么序号就是n;
例如,对于1*4的矩阵A=[5 6 7 8],A中第2元素是6,记作:
A(2)
那么返回值为6;
再如,对于2*3的矩阵:
B=[5 6 7
8 9 10]
B中第2元素是8,记作:
B(2)
那么返回值为8;
(此处不明白可留言交流)
5.逻辑索引
除了上述的两种索引,还有一种矩阵索引的方式,称为,逻辑索引;
逻辑索引,同样使用小括号,把逻辑矩阵作为输入参数,这里的逻辑矩阵是指,与矩阵具有相同大小,并使用逻辑值表达的逻辑矩阵,在逻辑值为真的位置,返回矩阵的元素;
程序示例如下:
b=[1 2;3 4] %创建2*2的矩阵
c=[true false;true false] %逻辑矩阵用true和false表示
b(c) %逻辑索引:逻辑值为真返回对应元素,为假不返回
说明,三种矩阵索引全部说完。
6.下标索引和线性索引的转换
sub2ind
ind2sub
这两个函数用的不多,不展开说,用到时自行查找用法即可,非常简单。
7.索引中冒号的妙用
下标索引中,可以使用冒号(:)表示所有行或者所有列;
程序示例如下:
a=[1 2 3
4 5 6
7 8 9]
a(1,:) %索引第1行所有列的元素,返回[1 2 3]
a(:,1) %索引所有行第1列的元素,返回[1;4;7]
a(:,:) %索引所有行所有列的元素,返回整个矩阵a
8.索引中end字符的妙用
下标索引中,可以使用‘end’表示最后一行或者最后一列;
程序示例如下:
a=[1 2 3
4 5 6
7 8 9]
a(2,end) %索引第2行最后一列的元素,返回6
a(end,3) %索引最后一行第3列的元素,返回9
a(end,end) %索引最后一行最后一列的元素,返回9
9.矩阵索引综合应用实例
a=[1 2 3
4 5 6
7 8 9]
a(1,2:3) %第1行,第2-3列,返回[2 3]
a(2,[1 3]) %第2行,第1列和第3列,返回[4 6]
a(3,2:end) %第3行,第2到最后一列,返回[8 9]
10.超出矩阵索引报错
a=[1 2 3
4 5 6
7 8 9]
a(3,4) %索引第3行第4列的元素
报错提示:超出矩阵范围;这是初学者常犯之错误。
附本文相关视频讲解:
End