从零开始学MATLAB(二)MATLAB矩阵处理

从零开始学MATLAB(二)MATLAB矩阵处理

1.特殊矩阵
(1)通用的特殊矩阵
zeros函数:产生全0矩阵,即零矩阵。
ones函数:产生全1矩阵,即幺矩阵。
eye函数:产生对角线为1的矩阵,当矩阵为方阵时,得到一个单位矩阵
rand函数:产生(0,1)区间均匀分布的随机矩阵。
randn函数:产生均值为0,方差为1的标准正态分布随机矩阵。
调用格式(以zeros函数为例):
①zeros(m):产生mm零矩阵
②zeros(m,n):产生m
n零矩阵
③zeros(size(A)):产生与矩阵A同样大小的零矩阵

(2)用于专门学科的特殊矩阵
①魔方(幻方)矩阵:每行、每列及主副对角线上各n个元素之和都相等,命令 magic(n)
②范德蒙矩阵:vander(V),产生以向量V为基础的范德蒙矩阵。
③希尔伯特矩阵:H(I,j)=1/(i+j-1)
从零开始学MATLAB(二)MATLAB矩阵处理_第1张图片
命令hilb(n)
④伴随矩阵:compan§,其中p是一个多项式的系数向量,高次幂系数排在前,低次幂系数排在后。
⑤帕斯卡矩阵:pascal(n),(杨辉三角形旋转)将二次项系数依次填写在矩阵的左侧对角线上,然后提取左侧n行n列元素即得到n阶帕斯卡矩阵。(P(I,j)=P(i-1,j)+P(I,j-1)且P(I,1)=1,P(1,j)=1)
2.矩阵变换:对角阵、三角阵、矩阵的转置、矩阵的旋转、矩阵的翻转、矩阵求逆
(1)对角阵:
①提取矩阵的对角线元素:
diag(A):提取矩阵A主对角线元素,产生一个列向量。
diag(A,k):提取矩阵A第k条对角线元素,产生一个列向量。
②构造对角矩阵:
diag(V):以向量V为主对角线元素,产生对角矩阵。
diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。
(2)三角阵:
①上三角矩阵:
triu(A):提取矩阵A的主对角线及以上的元素。
triu(A,k):提取矩阵A的第k条对角线及以上的元素。
②下三角矩阵:函数是tril,用法与triu函数完全相同。
(3)矩阵的转置:转置运算符是小数点后面接单引号(.’),共轭转置,其运算符是单引号(’),它在转置的基础上还要取每个数的复共轭。
(4)矩阵的旋转:rot90(A,k),将矩阵A逆时针方向旋转90度的k倍,当k=1时可以省略。
(5)矩阵的翻转:
fliplr(A):对矩阵A实施左右翻转。
flipud(A):对矩阵A实施上下翻转。
(6)矩阵的求逆:inv(A)
3.矩阵求值:行列式、秩、迹、范数、条件数
(1)方阵的行列式:det(A)
(2)秩:rank(A)
(3)迹:trace(A)
(4)向量和矩阵范数:
向量的三种常用范数:
向量1-范数:向量元素的绝对值之和,norm(V,1)
向量2-范数:向量元素平方和的平方根,norm(V)或norm(V,2)
向量∞-范数:所有向量元素绝对值中的最大值,norm(V,inf)
矩阵的范数:
矩阵A的1-范数:矩阵列元素绝对值之和的最大值
矩阵A的2-范数:A’A矩阵的最大特征值的平方根
矩阵A的∞-范数:所有矩阵行元素绝对值之和的最大值
矩阵范数的函数调用格式与求向量的范数的函数完全相同。
(5)矩阵的条件数:矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘积。条件数越接近1,矩阵的性能越好。
函数:cond(A,1),cond(A)或cond(A,2),cond(A,inf)
4.矩阵的特征值与特征向量
函数调用格式有两种:
E=eig(A):求矩阵A的全部特征值,构成向量E
[X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量。
5.稀疏矩阵:零元素个数远多于其他元素个数
(1)矩阵存储方式:
①完全存储方式:按列存储
②稀疏存储方式:只存储矩阵的非零元素的值及其位置,即行号和列号。(注:矩阵元素的存储顺序并未改变,也是按列存储。)例如,
从零开始学MATLAB(二)MATLAB矩阵处理_第2张图片
(2)稀疏存储方式的产生:
①完全存储方式与系数存储方式之间的转化
A=sparse(S):将矩阵S转化为稀疏存储方式的矩阵A
S=full(A):将矩阵A转化为完全存储方式的矩阵S
②直接建立稀疏存储矩阵:
sparse函数的其他调用格式:
sparse(m,n):生成一个mn的所有元素都是零的稀疏矩阵。
sparse(u,v,S):其中u、v、S是三个等长的向量。S是要建立的稀疏存储矩阵的非零元素,u(i)、v(i)分别是S(i)的行、列下标。
使用spconvert函数直接建立稀疏存储矩阵,调用格式为:B=spconvert(A),A为一个m
3或者m4的矩阵,每行表示一个非零元素,m是非零元素的个数,该行4个数分别表示元素所在行、元素所在列、实部、虚部(若均为实数,则无需第4列)
③带状稀疏矩阵的稀疏存储:
带状稀疏矩阵是指所有非零元素集中在对角线上的矩阵。
[B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非零对角线元素赋给矩阵B,这些非零对角线的位置组成向量d。
A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A,m、n为原带状稀疏矩阵的行数和列数,矩阵B的第i列即为原带状稀疏矩阵的第i条非零对角线,向量d为原带状稀疏矩阵所有非零对角线的位置。
④单位矩阵的稀疏存储:
speye(m,n)返回一个m
n的稀疏存储单位矩阵。
(注:当参与运算的数据对象不全是稀疏存储矩阵时,所得结果是完全存储形式。)

你可能感兴趣的:(从零开始学MATLAB(二)MATLAB矩阵处理)