MATLAB(3)--矩阵的引用(sub2ind、ind2sub、reshape函数使用)

矩阵元素的引用

  1. 通过下标来引用矩阵的元素。
    A(3,2)表示A矩阵第三行第二列的元素。只会改变A(3,2)元素的值,并不会改变其他的值。
    如果给出的行下标或者列下标大于原来矩阵的行下标或者列下标,那么自动扩展原来的矩阵,并将扩展后没有赋值的矩阵元素置为0,示例如下所示:
    在这里插入图片描述
  2. 通过下标来引用矩阵的元素。
    在MATLAB中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存储第二列,……,一直到矩阵的最后一列元素。
    矩阵元素的序号就是矩阵元素在内存中的排列顺序。
    例如下图中,创建了A的两行三列的元素,引用第三个元素:
    在这里插入图片描述
    序号与下边是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。
    矩阵袁术的序号与下标可以利用sub2ind和ind2sub函数实现互相转换。

sub2ind函数

将矩阵中的指定袁术的行、列下标转换成存储的序号:调用格式为:
在这里插入图片描述
sub2ind函数举例:
在这里插入图片描述
上图中,首先创建了一个矩阵A,一个5行5列矩阵,size(A)为获得A矩阵的行数和列数,sub2ind第二和第三个参数都是用矩阵表示的,两个矩阵对应的元素代表A中某个元素的行下标和列下标。
行下标为1,列下标为4的元素对应的是0.1419,对应的序号为16。
行下标为2,列下标为5的元素对应的是0.0357,对应的序号为22。
行下标为3,列下标为1的元素对应的是0.1270,对应的序号为3。
即我们输入的坐标(1,4),(2,5),(3,1)在矩阵A中的索引号,意思是A矩阵第1行第4个元素的索引值号为16,为什么是16呢?因为MATLAB是按列搜索的,先搜索第一列,然后搜索第二列…。同理A中的第2行第5个的索引号为22,后面依次类推。
那如何取出A中(1,4),(2,5),(3,1),输入一下代码即可:
在这里插入图片描述

ind2sub函数

将把矩阵元素的序号转换成对应的下表,其调用格式为:
在这里插入图片描述
ind2sub和sub2ind这对函数,是互逆的一对函数。ind2sub把数组或者矩阵的线性索引转化为相应的下标;sub2ind则正好相反,将下标转化为线性索引。
ind2sub函数举例:
在这里插入图片描述

上图中,首先创建了一个矩阵A,一个5行5列矩阵,size(A)为获得A矩阵的行数和列数,ind2sub第二个参数是用矩阵表示的,矩阵对应的元素代表A中索引值。
索引值为1,元素对应的是0.2760,对应的坐标为(1,1)。
索引值为7,元素对应的是0.9597,对应的坐标为(2,2)。
索引值为18,元素对应的是0.1986,对应的坐标为(3,4)。
那如何取出A中(1,1),(2,2),(3,4),输入一下代码即可:
在这里插入图片描述

利用冒号表达式获得子矩阵

子矩阵是指矩阵中的一部分元素构成的矩阵。

A(i,:)第i行的全部元素
A(:,j)第j列的全部元素
A(i:i+m,k:k+m)第i-i+m行且在第k-k+m列的所有元素
A(i:i+mm,:)第i-i+m行的全部元素

在这里插入图片描述

end 运算符

表示某一维的末尾元素小标。
在这里插入图片描述

利用空矩阵删除矩阵的元素

空矩阵是指没有任何元素的矩阵。
在这里插入图片描述
x就是一个空矩阵。
在这里插入图片描述

reshape函数

如果需要改变矩阵的形状,reshape(A,m,n)表示矩阵总元素保持不变的前提下,将矩阵A重新排列为m*n的矩阵。
reshape只改变矩阵的行数和列数,但并不改变原矩阵元素个数及其存储顺序。
在这里插入图片描述

A( : )

将矩阵A的每一列元素堆叠起来,成为一个列向量。
在这里插入图片描述
A( : )等价于reshape(A,6,1)。

最后

关注微信公众号『记贴』,持续更新文章和学习资料,可加作者的微信交流学习!
在这里插入图片描述

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记帖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值