一.矩阵表示
例如,A = [1,2,3;3,4,5].其中,矩阵的元素可以是数值、变量、表达式或者函数。
二.矩阵的创建
特殊矩阵的创建:a. ones(): ones(n)表示生成一个n*n的全1矩阵、ones(m,n)生成m*n的全1矩阵
b.zeros(): 类似ones()函数,其生成全0矩阵
c.rand(): 产生在(0,1)间均匀分布的矩阵
d.randn() : 产生均值为0,方差为1的标准正态分布随机矩阵
e.eye() :产生单位阵
三.矩阵的获取
1.获取元素:一种是直接元素下标索引,列如:Matrix(i,j);一种是元素序号索引,列如:Matrix(m)。其中,m = (j-1)*M+i,也就是一列一列的来,像Z型循环。
2.矩阵截取:(1) A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。
(2) A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。
四.矩阵运算
1. ’(转置):对实数矩阵进行行列互换,对复数矩阵,共轭转置,特殊的,操作符.’共轭不转置(见点运算)
2.设A为m*n矩阵,diag(A)函数用于提取矩阵A主对角线元素,产生一个列向量。diag(A,k),提取第k条对角线的元素
3.矩阵A实施左右翻转:fliplr(A),对矩阵A实施上下翻转:flipud(A);
矩阵的旋转:rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可以省略
4.inv(A) : 求方阵A的逆矩阵;pinv(B):求A的伪逆矩阵
5.det(A) : 求A的行列式值
6.rank(A) : 求A的秩; trace(A): 求A的迹
7.范数:a、norm(V)或norm(V,2):计算向量V的2-范数;
b、norm(V,1):计算向量V的1-范数;
c、norm(V,inf):计算向量V的∞-范数
8.矩阵的特征值与特征向量
(1) E=eig(A):求矩阵A的全部特征值,构成向量E。
(2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量
(3).svd()特征值分解,Rx = U*S*V',mean S 是一个与M*N的对角矩阵,对角元素为特征值,U为大小特征向量组成
四. 其他
(1) 非零元素信息
nnz(S) 返回非零元素的个数
nonzeros(S) 返回列向量,包含所有的非零元素
(2) 查看稀疏矩阵的形状 spy(S)
(3) find函数与稀疏矩阵
[i,j,s]=find(S)
[i,j]=find(S)
返回 S 中所有非零元素的下标和数值,S 可以是稀疏矩阵或满矩阵
(4)sort的用法:
Y=sort(X) : 表示对X进行升序排序,默认1
Y=sort(X,DIM,MODE),
参数DIM表示对哪一个维数进行排序,例如当X是一个二维矩阵,当DIM=1时表示对X的每一列进行排序,当DIM=2时表示对X的每一行进行排序。
参数MODE表示按哪一种模式进行排序,当MODE=‘ASCEND’的时进行升序排序,当MODE=‘DESCEND’时,进行降序排序。
[Y,I] = sort(X,DIM,MODE)
I返回索引序列,它表示Y中的元素与X中元素的对应。