一、矩阵元素的引用方式
1、通过下标来引用矩阵的元素
A(2,3)表示A矩阵第2行第3列的元素
2、通过序号来引用
MATLAB中,矩阵元素是按列存储的,即首先存储矩阵第一列元素,然后存储第二列元素,……,一直到矩阵的最后一列。
矩阵元素的序号就是矩阵元素在内存中的排列顺序。
序号与下标是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i
矩阵元素的序号和下标可以利用sub2ind和ind2sub函数实现相互转换
**sub2ind函数:**将矩阵中指定元素的行、列下标转换成存储的序号。调用格式为:
D=sub2ind(S,I,J),S表示要转换矩阵的行数和列数组成的向量,可用size(A)获得;I 是要转换矩阵元素的行下标,J 是要转换矩阵元素的列下标。如果I和J是矩阵,表示要将矩阵中的多个元素的行列下标转换成存储的序号。
**ind2sub函数:**把矩阵元素的序号转化成对应的下标,其调用格式为:
[I,J]=ind2sub(S,D),S表示要转换矩阵的行数和列数组成的向量,D表示序号,I 是要转换矩阵元素的行下标,J 是要转换矩阵元素的列下标。
二、利用冒号表达式获得子矩阵
A(i,:) 表示第i行的全部元素
A(:,j) 表示第j列的全部元素
A(i:i+m,k:k+m) 表示第i ~ i+m行,且在第k ~ k+m列中的所有元素
A(i:i+m,:) 表示第i ~ i+m行的全部元素
**end运算符:**表示某一维的末尾元素下标
三、利用空矩阵删除矩阵的元素
空矩阵是指没有任何元素的矩阵
如果要删除元素,只需 将这些元素置为空矩阵
四、改变矩阵的形状
**reshape(A,m,n):**在矩阵总元素保持不变的前提下,将矩阵A重新排成m * n的二维矩阵。
reshape函数只是改变原矩阵的行数和列数,但并不改变原矩阵元素的个数及其存储顺序。
**A(:) :**将矩阵A的每一列元素堆叠起来,成为一个列向量。