本篇是B站视频的笔记。

2.1 特殊矩阵

通用性的特殊矩阵

  • zeros函数:产生全0矩阵,即零矩阵。
  • ones函数:产生全1矩阵,即幺矩阵。
  • eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。
  • rand函数:产生(0,1)区间均匀分布的随机矩阵。
  • randn函数:产生均值为0,方差为1的标准正态分布随机矩阵。
    其调用格式相似,以zeros函数的调用格式为例:

    • zeros(m):产生m * m零矩阵。
    • zeros(m,n):产生m * n零矩阵。
    • zeros(size(A)):产生与矩阵A同样大小的零矩阵。

用于专门学科的特殊矩阵

(1)魔方矩阵——Magic Square

>> M=magic(3)
M =8     1     63     5     74     9     2
  • n阶魔方阵由1,2,3,…,n2共n2个整数组成,且每行、每列以及主、副对角线上各n个元素之和都相等。
  • n阶魔方阵每行每列元素的和为(1+2+3+···+n2)/n=(n+n3)/2。
  • MATLAB函数magic(n)产生一个特定的魔方阵。

(2)范德蒙矩阵

在MATLAB中,函数vander(V)生成以向量V为基础的范德蒙(Vandermonde)矩阵。

>> A=vander(1:5)
A = 1     1     1     1     116     8     4     2     181   27     9     3     1256   64   16     4     1625 125   25     5     1

范德蒙矩阵常用在各种通信系统的纠错编码中,例如,常用的Reed-Solomon编码即以范德蒙矩阵为基础。

(3)希尔伯特矩阵


在MATLAB中,生成n阶希尔伯特矩阵的函数是hilb(n)。

>> format rat
>> H=hilb(4)
H = 1        1/2      1/3      1/41/2     1/3      1/4      1/51/3     1/4      1/5      1/61/4     1/5      1/6      1/7

*希尔伯特矩阵是著名的病态矩阵,即任何一个元素发生较小的变动,整个矩阵的值和逆矩阵都会发生很大的变化。病态程度和矩阵阶数相关,随着阶数的增加,病态更加严重。

(4)伴随矩阵


MATLAB生成伴随矩阵的函数是compan§,其中p是一个多项式的系数向量,高次幂系数排在前,低次幂系数排在后。
例如,生成多项式x3-2x2-5x+6的伴随矩阵。

>> p=[1,-2,-5,6];
>> A=compan(p)
A = 2     5    -61     0     00     1     0

(5)帕斯卡矩阵

  • 根据二项式定理,(x+y)n展开后的系数随着n的增大组成一个三角形表,这个三角形称为杨辉三角。
  • 把二项式系数一次填写在矩阵的左侧对角线上,然后提取左侧的n行n列元素级委n阶帕斯卡(Pascal)矩阵。


帕斯卡矩阵的第一行元素和第一列元素都为1,其余位置的元素是该元素的左边元素与上面元素相加,即P(i,j)=P(i,j-1)+P(i-1,j),且P(i,1)=1,P(1,j)=1。
函数pascal(n)生成一个n阶帕斯卡矩阵。

2.2 矩阵变换

对角阵

  • 对角矩阵:只有对角线上有非零元素的矩阵。
  • 数量矩阵:对角线上的元素相等的对角矩阵。
  • 单位矩阵:对角线上的元素都为1的对角矩阵。

(1)提取矩阵的对角线元素

  • diag(A):提取矩阵A主对角线元素,产生一个列向量。
  • diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量。

(2)构造对角矩阵

  • diag(V):以向量V为主对角线元素,产生对角矩阵。
  • diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。

三角阵

(1)上三角矩阵

  • triu(A):提取矩阵A的主对角线及以上的元素。
  • triu(A,k):提取矩阵A的第k条对角线及以上的元素
>> triu(ones(4),-1)
ans =1     1     1     11     1     1     10     1     1     10     0     1     1

(2)下三角矩阵

在MATLAB中,提取矩阵A的下三角矩阵的函数是tril,其用法与triu函数完全相同。

矩阵的转置

  • 转置运算符是小数点后面接单引号(.’)。
  • 共轭转置,其运算符是单引号(’),它在转置的基础上还要取每个数的复共轭。

矩阵的旋转

rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可以省略。

矩阵的翻转

  • fliplr(A):对矩阵A实施左右翻转。
  • flipud(A):对矩阵A实施上下翻转。

矩阵的求逆

对于一个方阵A,如果存在一个与其同阶的方阵B,使得AB=BA=I(I为单位矩阵),则称B为A的逆矩阵,当然,A也是B的逆矩阵。

  • inv(A):求方阵A的逆矩阵。

2.3 矩阵求值

方阵的行列式

把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为方阵所对应的行列式的值。
· det(A):求方阵A所对应的行列式的值。

矩阵的秩

矩阵线性无关的行数或列数称为矩阵的秩。

  • rank(A):求矩阵A的秩。

矩阵的迹

矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。

  • frace(A):求矩阵A的迹。

向量和矩阵的范数

矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。

(1)向量的3中常用范数

  • 向量1——范数:向量元素的绝对值之和。
  • 向量2——范数:向量元素平方和的平方根。
  • 向量无穷oo——范数:所有向量元素绝对值中的最大值。

在MATLAB中,求向量范数的函数为:

  • norm(V)或norm(V,2):计算向量V的2——范数。
  • norm(V,1):计算向量V的1——范数。
  • norm(V,inf):计算向量V的oo——范数。

(2)矩阵的范数

从属与3中向量范数,矩阵范数计算公式如下。

  • 矩阵A的1——范数:矩阵列元素绝对值之和的最大值。
  • 矩阵A的2——范数:A’A(矩阵的转置与A本身的乘积)矩阵的最大特征值的平方根。
  • 矩阵A的无穷oo——范数:所有矩阵航元素绝对值之和的最大值。

MATLAB提供了求3中矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同。

矩阵的条件数

矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘积。
条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差。

在MATLAB中,计算矩阵A的3中条件数的函数是:

  • cond(A,1):计算A的1——范数下的条件数。
  • cond(A)或cond(A,2):计算A的2——范数下的条件数。
  • cond(A,inf):计算A的oo——范数下的条件数。

2.4 矩阵的特征值与特征向量

矩阵特征值的数学定义

不多描述。

求矩阵的特征值与特征向量

函数调用格式用两种:

  • E=eig(A):求矩阵A的全部特征值,构成向量E。
  • [X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并参数矩阵X,X各列是相应的特征向量。

特征值的几何意义

2.5 稀疏矩阵

稀疏矩阵,0元素远远大于非0元素个数的矩阵。

矩阵的存储方式

  • 完全存储方式
  • 稀疏存储方式:只存储矩阵的非零元素的值及其位置,即行号和列号。注意,采用稀疏存储方式时,矩阵元素的存储顺序并没有改变,也是按列的顺序进行存储。

稀疏存储方式的产生

(1)完全存储方式与稀疏存储方式之间的转化

  • A=sparse(S):将矩阵S转化为稀疏存储方式的矩阵A。
  • S=full(A):将矩阵A转化为完全存储方式的矩阵S。

(2)直接建立稀疏存储矩阵

sparse函数的其他调用格式:

  • 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为一个m3或m4的矩阵,其每行代表一个非零元素,m是非零元素的个数。

  • A(i,1)表示第i个非零元素所在的行。
  • A(i,2)表示第i个非零元素所在的列。
  • A(i,3)表示第i个非零元素值的实部。
  • A(i,4)表示第i个非零元素的虚部。
    若矩阵的全部元素都是实数,则无需第4列。

(3)带状稀疏矩阵的稀疏存储

稀疏矩阵有两种基本类型:无规则结构的稀疏矩阵与有规则结构的稀疏矩阵。
带状稀疏矩阵是指所有非零元素集中在对角线上的矩阵。

  • [B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非零对角线元素赋给矩阵B及其这些非零对角线的位置向量d。
  • A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏矩阵A,其中m,n为原带状稀疏矩阵的行数与列数,矩阵B的第i列即为原带状稀疏矩阵的第i条非零对角线,向量d为原带状稀疏矩阵所有费零对角线的位置。

(4)单位矩阵的稀疏存储

speye(m,n)返回一个m*n的稀疏存储单位矩阵。

注意,当参与运算的数据对象不全是稀疏存储矩阵时,所得结果是完全存储形式。

专题二 MATLAB矩阵处理相关推荐

  1. 【Matlab】MATLAB矩阵处理

    专题二  MATLAB矩阵处理 -------------------------------------------------------------------------------- 一.特 ...

  2. matlab找出二维矩阵中最大值的位置或者最小值的位置

    matlab寻找最大值或者最小值是通过max和min命令 对应二维矩阵寻找最大元素就是max(max(A)),注意二维矩阵要写两个max 找对应位置用find函数 举个例子: >> A=[ ...

  3. 【Matlab】如何对二维矩阵进行线性/非线性插值?

    1.Introduction 最近又遇到了矩阵插值(重采样)的问题,在最开始写博客的时候就写了篇关于 Excel 重采样的文章,不过在逐渐熟悉 Matlab 的过程中,还是决定看看能不能编程自动实现, ...

  4. 【Matlab】一种超简单的二维矩阵降维方法

    1.Introduction Matlab里图像处理时,经常会把一维数组转二维数组,二维数组转一维,如下图所示: 一般经常使用的函数是 reshape ,可以在不同维度之间进行转换,不过需要事先计算数 ...

  5. matlab二维度矩阵转化三维_Matlab三维矩阵运算

    三维矩阵按页相乘: 问题:两个三维矩阵,按页进行矩阵相乘. A = rand(a1,a2,n); B = rand(a2,b2,n); C = zeros(a1,b2,n); for i=1:n C( ...

  6. matlab 二维矩阵变成一维矩阵

    matlab 二维矩阵变成一维矩阵 1.一维变二维: https://blog.csdn.net/qq_40584593/article/details/90691276 reshape 2.a(:) ...

  7. matlab 把图像变成二维的,matlab图像怎么变成二维矩阵

    求:matlab二维直方图图像分割程序.. 我给你个网站``里面的教学很详细~~希望能帮到你~~~~反正里面的软件教程很多``就是不知道有没你要找的``如果有~~给我加分哈``http://tech. ...

  8. matlab如何将三维转为二维_matlab 三维矩阵转二维矩阵(转)

    matlab中三维数组顺序是:行.列.页.二维数组只有行.列.如果两只之间赋值,有一个维数缩减问题需要注意. 例如: A3是三维数组,A3(:,:,1)=[1,2,3;4,5,6]; A3(:,:,2 ...

  9. matlab三维数组与二维矩阵相乘问题

    Matlab三维数组与二维矩阵相乘问题 近来在搞一个改进近场music算法的仿真问题,用matlab进行二维搜索的时候写了很多for循环,导致运行速度极慢.考虑到matlab语言本身的矩阵运算特点,改 ...

最新文章

  1. 8.19noip模拟题
  2. Vue中数组变动监听
  3. 大数据学习笔记31:Java程序访问高可用Hadoop集群
  4. linux中ftp保持连接,linux – FTP’ing大文件时如何防止TCP连接超时?
  5. 前端调数据会经常用到的事件处理
  6. WSL安装记录及相关
  7. Proxy实现MySQL读写分离
  8. 给Silverlight三十分钟
  9. 枯燥的计算机组成原理课.....!!! 看来只能自己看书消化了...!!!
  10. steam账号被盗找回概率_如何找回忘记的Steam密码
  11. html6张拼图,拼图6张-好看的6宫格拼图大全-稿定设计
  12. Android 虚拟按键上报
  13. python输入百分制成绩s、按五级分制输出_输入一个百分制成绩,利用switch语句编写程序,要求输出成绩等级A B C D,E。90以上为A...
  14. Git Github 学习
  15. 光武1号守卫盾,一款让优秀非凡的重疾产品【保通保险】
  16. 基于Inception v2实现判别mnist手写数据集
  17. C语言学习笔记06-占位符格式、C基本类型及逃逸字符一些细节(附介绍BCD码)
  18. Ubuntu Linux画图与截屏修改软件FLAMESHOT与快捷键
  19. 神经网络的三种训练方法,训练神经网络作用大吗
  20. 综合工时制-跨零点到节假日的工时统计异常问题的思考

热门文章

  1. ue4 unreal4 自定义网格 绘制自定义网格 绘制面 (Plus)
  2. 定编定岗定员方案_[转载]定岗、定编、定员实施方案  (讨论稿)
  3. 腾讯会议怎么录屏?几个步骤轻松录屏
  4. 在超算上用sentieon快速完成NGS的变异检测
  5. java.io.FileNotFoundException: File does not exist: hdfs ://sxt/home/sqoop-1.4.6/lib/commons-codec-1
  6. 如何查看网页源码code、申请头headers等
  7. 【日语】编程相关日语词汇
  8. C++中的重载丶重写丶重定义丶重定向的区别
  9. JavaScript的三座大山--(2)--作用域和闭包
  10. 2 MyBatis Sql映射文件