MATLAB 矩阵处理
2018-03-03 22:46
501 查看
科学计算与MATLAB语言
刘卫国、蔡旭晖、吕格莉、何小贤
n>2n>2 时有很多不同的 n 阶魔方阵,MATLAB函数
nn阶魔方阵每行每列元素的和为(1+2+3+…+n2)/n=(n+n3)/2(1+2+3+…+n2)/n=(n+n3)/2
范德蒙(Vandermonde)矩阵
最后一列全为1,即向量v各元素的零次方
倒数第二列为指定的向量v, 即向量v各元素的一次方
其他各列是其后列与倒数第二列的点乘积
希尔伯特(Hilbert)矩阵
元素H(i,j)=1/(i+j−1)H(i,j)=1/(i+j−1)
希尔伯特矩阵是著名的病态矩阵,即任何一个元素发生较小的变动,整个矩阵的值和逆矩阵都会发生很大变化。病态程度和矩阵的阶数相关,随着阶数的增加病态越严重。
伴随矩阵
矩阵A
多项式 p(x)=anxn+an−1xn−1+…+a1x+a0p(x)=anxn+an−1xn−1+…+a1x+a0,则其伴随矩阵为 A,A 的特征多项式为 p(x)p(x)
伴随矩阵的特征值等于多项式方程的根
帕斯卡(Pascal)矩阵
即杨辉三角
帕斯卡矩阵的逆矩阵的所有元素也为整数
数量矩阵:主对角线上的元素相等的对角矩阵。
矩阵的对角线: 与主对角线平行,往右上为第1条、第2条、 一直到第n条对角线,往左下为第-1条、 -2条、 一直到-n条对角线。主对角线为第0条对角线
共轭转置的运算符是单引号
如果矩阵的元素是实数,那么转置和共轭转置的结果是一样的
向量2—范数:向量元素平方和的平方根。
向量∞—范数:所有向量元素绝对值中的最大值。
矩阵A的2—范数:矩阵A的最大特征值的平方根
矩阵A的∞—范数:所有矩阵行元素绝对值之和的最大值
调用形式与向量相同
条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差
完全存储方式: 将矩阵的全部元素按列存储
稀疏存储方式: 只存储矩阵的非零元素的值及其位置,即行号和
列号
疏存储矩阵的非零元素,
使用
A为一个m×3或m×4的矩阵,其每行表示一个非零元素, m是非零元素的个数
刘卫国、蔡旭晖、吕格莉、何小贤
特殊矩阵
相关函数
zeros():产生全0矩阵,即零矩阵
ones():产生全1矩阵,即幺矩阵
eye():产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵
rand():产生,(0,1),(0,1)区间均匀分布的随机矩阵
randn():产生均值为0,方差为1的标准正态分布随机矩阵
一些技巧
rand()产生随机数 x;
fix(a+(b-a)*x)产生,(a,b),(a,b)区间上均匀分布的随机整数
randn()产生随机数 y;μ+σyμ+σy 得到均值为μμ、方差为σ2σ2的随机数
特定用途的矩阵
魔方矩阵(幻方) – Magic Squaren>2n>2 时有很多不同的 n 阶魔方阵,MATLAB函数
magic(n)产生一个特定的魔方阵。
nn阶魔方阵每行每列元素的和为(1+2+3+…+n2)/n=(n+n3)/2(1+2+3+…+n2)/n=(n+n3)/2
范德蒙(Vandermonde)矩阵
vander()
最后一列全为1,即向量v各元素的零次方
倒数第二列为指定的向量v, 即向量v各元素的一次方
其他各列是其后列与倒数第二列的点乘积
希尔伯特(Hilbert)矩阵
hilb()
元素H(i,j)=1/(i+j−1)H(i,j)=1/(i+j−1)
希尔伯特矩阵是著名的病态矩阵,即任何一个元素发生较小的变动,整个矩阵的值和逆矩阵都会发生很大变化。病态程度和矩阵的阶数相关,随着阶数的增加病态越严重。
伴随矩阵
compan()
矩阵A
多项式 p(x)=anxn+an−1xn−1+…+a1x+a0p(x)=anxn+an−1xn−1+…+a1x+a0,则其伴随矩阵为 A,A 的特征多项式为 p(x)p(x)
伴随矩阵的特征值等于多项式方程的根
帕斯卡(Pascal)矩阵
即杨辉三角
帕斯卡矩阵的逆矩阵的所有元素也为整数
矩阵变换
提取矩阵元素
对角阵:只有对角线上有非零元素的矩阵。数量矩阵:主对角线上的元素相等的对角矩阵。
矩阵的对角线: 与主对角线平行,往右上为第1条、第2条、 一直到第n条对角线,往左下为第-1条、 -2条、 一直到-n条对角线。主对角线为第0条对角线
diag(A,k):提取矩阵 A 第 k 条对角线的元素,产生一个列向量(k 默认为0)
diag(V,k):以向量 V 为第 k 条对角线元素,产生对角矩阵(k 默认为0)
改变元素位置
转置运算符是小数点后面接单引号.'
共轭转置的运算符是单引号
',在转置的基础上取每个数的复共轭
如果矩阵的元素是实数,那么转置和共轭转置的结果是一样的
triu(A,k):提取矩阵 A 的第 k 条对角线及以上的元素,其余元素为0,产生一个与原矩阵同型的矩阵(k 默认为0)
tril(A,k):提取矩阵 A 的第 k 条对角线及以下的元素(k 默认为0)
rot90(A,k):将矩阵A逆时针方向旋转 º90º∗kº90º∗k(k 默认为1)
fliplr(A):对矩阵A实施左右翻转(镜面对称)
flipud(A):对矩阵A实施上下翻转
矩阵求逆
inv(A):求方阵A的逆矩阵
A\eye(n):n 为 A 的阶
eye(n)/A:n 为 A 的阶
矩阵求值
det(A):求方阵A所对应的行列式的值
rank(A):求矩阵A的秩
trace(A):求矩阵A的迹(矩阵的对角线元素之和,也等于矩阵的特征值之和)
向量的范数
向量1—范数:向量元素的绝对值之和。norm(V,1)
向量2—范数:向量元素平方和的平方根。
norm(V)或
norm(V,2)
向量∞—范数:所有向量元素绝对值中的最大值。
norm(V,inf)
矩阵的范数
矩阵A的1—范数:所有矩阵列元素绝对值之和的最大值矩阵A的2—范数:矩阵A的最大特征值的平方根
矩阵A的∞—范数:所有矩阵行元素绝对值之和的最大值
调用形式与向量相同
矩阵的条件数
矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘积条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差
cond(A,1):计算A的1—范数下的条件数。
cond(A)或
cond(A,2):计算A的2—范数数下的条件数
cond(A,inf):计算A的∞—范数下的条件数
矩阵的特征值与特征向量
E=eig(A):求矩阵A的全部特征值,构成向量E
[X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D, 并产生矩阵X, X各列是相应的特征向量
稀疏矩阵
矩阵的存储方式完全存储方式: 将矩阵的全部元素按列存储
稀疏存储方式: 只存储矩阵的非零元素的值及其位置,即行号和
列号
A=sparse(S): 将矩阵S转化为稀疏存储方式的矩阵A。
S=full(A): 将矩阵A转化为完全存储方式的矩阵S
稀疏矩阵的生成
sparse(m,n):生成一个m×n的所有元素都是零的稀疏矩阵
sparse(u,v,S):其中u、 v、 S是3个等长的向量。S是要建立的稀
疏存储矩阵的非零元素,
u(i)、
v(i)分别是
S(i)的行和列下标
使用
spconvert()直接建立稀疏存储矩阵,其调用格式为
B=spconvert(A)
A为一个m×3或m×4的矩阵,其每行表示一个非零元素, m是非零元素的个数
A(i,1)表示第i个非零元素所在的行
A(i,2)表示 第i个非零元素所在的列
A(i,3)表示第i个非零元素值的实部
A(i,4)表示第i个非零元素值的虚部。若矩阵的全部元素都是实数,则无须第4列
speye(m,n)返回一个m×n的稀疏存储单位矩阵
带状稀疏矩阵
是一种具有规则结构的稀疏矩阵,其所有非零元素集中在对角线上(不只是主对角线)[B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非零对角线元素赋给矩阵B及其这些非零对角线的位置向量d
A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A, 其中m、 n为原带状稀疏矩阵的行数与列数,矩阵B的第i列即为原带状稀疏矩阵的第i条非零对角线, 向量d为原带状稀疏矩阵所有非零对角线的位置
应用举例
相关文章推荐
- MATLAB图像处理基础知识3 稀疏矩阵变全矩阵full 保存矩阵到txt文件save
- numpy线性代数基础 - Python和MATLAB矩阵处理的不同
- Matlab矩阵处理小结(4)-批量将矩阵保存到不同的文件--动态更新文件名
- MATLAB图像处理基础知识3 替换矩阵的数值A(A<0) = 1
- matlab 把图像分成2x4小矩阵用平均值替代 图像模糊处理
- matlab学习(1)——sparse函数和full函数处理稀疏矩阵
- matlab把cell矩阵转换成能处理的数据
- matlab处理矩阵的相关知识点
- MatLab自学内容——矩阵,图像处理
- matlab 高级函数 —— colfilt/blockproc (图像)矩阵的分块处理
- MATLAB的矩阵处理基
- 图像处理 估计退化函数之运动模糊和矩阵matlab运算的一些实验情况
- matlab图像处理函数学习——图像或者矩阵填充函数:padarray
- matlab处理矩阵的一些简易操作和画图的一些小技巧
- [转]numpy线性代数基础 - Python和MATLAB矩阵处理的不同
- numpy线性代数基础 - Python和MATLAB矩阵处理的不同
- Matlab矩阵处理小结(2)-读数据求均值和中位数 绘制errorbar图
- MATLAB图像处理基础知识3 稀疏矩阵变全矩阵full 保存矩阵到txt文件save
- matlab 中一些对数组或矩阵的处理
- matlab:矩阵中对NaN的处理方式