MATLAB矩阵索引技巧:多种索引方式与常见问题

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

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空