通过下标来引用矩阵的元素
- A(3, 2)表示A矩阵第3行第2列的元素。
>> arr = [1,2,3;4,5,6];
>> arr(4, 5) = 10arr =1 2 3 0 04 5 6 0 00 0 0 0 00 0 0 0 10>>
如果引用元素超过矩阵的大小将自动扩充矩阵
通过序号来引用矩阵的元素
- A(3)表示下图中按照列数的第三个元素
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 列矩阵
矩阵序号和下标的相互转换
函数名 | 用法 |
sub2ind() | 将行列下标转换成存储序号
|
ind2sub() | 将存储序号转换成行列下标 [I, J] = ind2sub(S, D)
|
size() | 获取矩阵的行列数构成的向量 >> size(A) ans = 2 3 注:A为一个两行三列构成的矩阵 |
ind2sub函数
>> clear
>> A = [1:3;4:6]A =1 2 34 5 6>> D = sub2ind(size(A), [1,2;2,2],[1,1;3,2])D =1 26 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所有元素堆叠成一列