1.5矩阵元素的引用

通过下标来引用矩阵的元素

  • A(3, 2)表示A矩阵第3行第2列的元素。
>> arr = [1,2,3;4,5,6];
>> arr(4, 5) = 10

arr =

     1     2     3     0     0
     4     5     6     0     0
     0     0     0     0     0
     0     0     0     0    10

>> 

 如果引用元素超过矩阵的大小将自动扩充矩阵

通过序号来引用矩阵的元素

  • A(3)表示下图中按照列数的第三个元素

1.5矩阵元素的引用_第1张图片

MATLAB中矩阵按照列从上往下的存储顺序,所以

A(1)是1

A(2)是4

A(3)是2

A(4)是5

A(5)是3

A(6)是6

序号与下标实际上是一一对应的:

以m x n矩阵A为例,矩阵元素A(i, j)的序号为(j - 1) x m + i

注:m x n 表示 m 行 n 列矩阵

1.5矩阵元素的引用_第2张图片

 矩阵序号和下标的相互转换

函数名 用法
sub2ind()

将行列下标转换成存储序号
D = sub2ind(S, I, J)

  • S:行数和列数组成的向量
  • I:矩阵元素的行下标
  • J:矩阵元素的列下标
ind2sub()

将存储序号转换成行列下标

[I, J] = ind2sub(S, D)

  • S:行数和列数组成的向量
  • D:序号
size()

获取矩阵的行列数构成的向量

>> size(A)

ans =

     2     3

注:A为一个两行三列构成的矩阵

ind2sub函数

>> clear
>> A = [1:3;4:6]

A =

     1     2     3
     4     5     6

>> D = sub2ind(size(A), [1,2;2,2],[1,1;3,2])

D =

     1     2
     6     4

>> 

将(1,1),(2,1),(2,3),(2,2)下标值转化为序号

冒号表达式引用矩阵

  • A(:, :)表示矩阵的全部的引用
  • A(: , n)表示对第n列进行引用
  • A(n, :)表示对第n行进行引用
  • end运算符:表示某一行或某一列末尾元素的下标

利用空矩阵改变矩阵的元素

  • A(:, [m, n, ...]) = [] 
  • A([m, n...], :) = []

改变矩阵的形状

  • reshape(a, m, n)改变矩阵的形状,a为一维矩阵
  • B = A(:)将A所有元素堆叠成一列

你可能感兴趣的:(MATLAB基础,数学建模大赛基础,矩阵,matlab)