MATLAB矩阵下标引用

打印 上一主题 下一主题

主题 1640|帖子 1640|积分 4920

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        在MATLAB中,普通的二维数组元素的数字索引分为双下标索引和单下标索引。双下标索引是通过一个二元数组对来对应元素在矩阵中的行列位置,例如A(2,3)表示矩阵A中第2行第3列的元素。单下标索引的方式是采用列元素优先的原则,对m行n列的矩阵按列排序进行重组,成为一维数组,再取新的一维数组中元素优先位置对应的值作为元素在原矩阵中单下标,例如对于4✖4的矩阵,A(7)表示矩阵A中第3行第2列的元素,而A(13)表示矩阵A中第1行第4列的元素。
        1、矩阵下标访问单个矩阵元素

        常用的矩阵索引表达式如下所示。
矩阵的索引表达式  索引表达式函数功能A(1)将二维矩阵A重组为一维数组,返回数组中第一个元素A(:,j)返回二维矩阵A中第j列列向量A(i,;)返回二维矩阵A中第i行行向量A(:,j:k)返回由二维矩阵A中的第j列到第k列列向量组成的子矩阵A(i:k,返回由二维矩阵A中的第i行到第k行行向量组成的子矩阵 A(i:k,j:l)
返回由二维矩阵A中的第i行到第k行行向量和第j列到第l列列向量的交集组成的子矩阵A(;)将矩阵A中每列合并成一个长的列向量A(j:k)返回一个行向量,其元素为A(中的第j个元素到第k个元素A([j1j2...])返回一个行向量,其中元素为A(中的第j1、j2元素A(;,[j1j2...]) 返回矩阵A的第j1列、第j2列等的列向量
A([i1i2...]:,)返回矩阵A的第i1行、第i2行等的行向量A([i1i2...],[j1j2...]) 返回矩阵第i1行、第i2行等和第j1列、第j2列等的元素
          2、线性引用矩阵元素

        矩阵某一元素的单下标索引值和双下标索引值之间,可以通过MATLAB内部函数进行转换,其句法形式为:
        
  1. IND = sub2ind(siz,i,j)
复制代码
        其功能为将双下标索引值变为单下标索引值,其中siz是一个包含两个元素的数组,代表了转换矩阵的行列数将双下标索引值转换为单下标索引值,其中siz是一个包含两个元素的数组,代表转换矩阵的行列数,一般可以直接用size(A)表示,i和j分别是双下表索引中的行、列值,IND是转换后的单下标索引值。
  1. [I J] = ind2sub(siz,ind)
复制代码
        其功能为将单下标索引值转换为双下标索引值,各变量意义同上。
        3、访问多个矩阵元素

        设A=magic(4),假如需要盘算第4列元素的和,按照前面介绍的方法可以用以下式来实现:
  1. A(1,4)+A(2,4)+A(3,4)+A(4,4)
复制代码
        在下标表达式里,可以用冒号来表示矩阵的多个元素。例如,A(1:k,j)表示矩阵第j列的前k个元素。利用冒号,第四列的元素和可以更简朴的表达,代码设置如下:
  1. sum(A(1:4,4))
复制代码
        在MATLAB中提供了一个关键字end,用于表示该维中的最后一个元素,所以上式还可以写为:
  1. sum(A(:,end))
复制代码
        实际上还可以用冒号表示非相邻的多个元素,例如下面的代码:
  1. A=1:10
  2. B=A(1:3:10)
复制代码
        由上述语句可以得到如下输出结果:
  1. A =
  2.      1     2     3     4     5     6     7     8     9    10
  3. B =
  4.      1     4     7    10
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表