《MATLAB图像处理超级学习手册》一一2.4 MATLAB矩阵的运算

简介:

本节书摘来自异步社区出版社《MATLAB图像处理超级学习手册》一书中的第2章,第2.节,作者:MATLAB技术联盟 , 张岩 更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 MATLAB矩阵的运算

MATLAB图像处理超级学习手册
MATLAB中,矩阵的运算包括+(加)、-(减)、*(乘)、/(右除)、(左除)、^(乘方)等运算。下面对其进行介绍。

2.4.1 矩阵加减运算
假定有两个矩阵A和B,若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减即可,由A+B和A-B来实现矩阵的加减运算。

【例2-9】对矩阵A和B进行加减运算。

>>A=[5 4 6;8 9 7;3 6 4]
>>B=[9 1 7;5 6 6;5 6 8]
>>C=A+B
>>D=A-B
A =
   5   4   6
   8   9   7
   3   6   4
B =
   9   1   7
   5   6   6
   5   6   8
C =
  14   5  13
  13  15  13
   8  12  12
D =
  -4   3  -1
   3   3   1
  -2   0  -4

如果A与B的维数不相同时,例如:

>>A=[5 4 6;8 9 7;3 6 4]
B=[9 1 7;5 6 6;5 6 8;7 9 8]
C=A+B
D=A-B

则MATLAB将给出错误信息,Error: using+Matrix dimensions must agree。提示用户两个矩阵的维数不匹配。

2.4.2 矩阵乘法
假定有两个矩阵A和B,若A为m×n矩阵,B为n×p矩阵,则可以进行矩阵乘法的操作,即C=A*B为m×p矩阵。矩阵乘法需要被乘矩阵的列数与乘矩阵的行数相等。

【例2-10】矩阵的相乘。

>>A=[5 4 6;8 9 7;3 6 4]
>>B=[9 1 7 1;5 6 6 2;5 6 8 3]
>>C=A*B
A =
   5   4   6
   8   9   7
   3   6   4
B =
   9   1   7   1
   5   6   6   2
   5   6   8   3
C =
  95  65  107  31
  152  104  166  47
  77  63  89  27

当矩阵相乘不满足被乘矩阵的列数与乘矩阵的行数相等时,例如:

>>A=[5 6;8 7;3 4]
B=[9 1 7 1;5 6 6 2;5 6 8 3]
C=A*B

则MATLAB将给出错误信息, Error: using * Matrix dimensions must agree。提示用户两个矩阵的维数不匹配。

2.4.3 矩阵除法
矩阵除法运算中,和/分别表示左除和右除。AB等效于A的逆左乘B矩阵,而B/A等效于A矩阵的逆右乘B矩阵。左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般AB≠B/A。

【例2-11】矩阵除法。

>>clear
>>A=[5 4 6;8 9 7;3 6 4];
>>B=[9 ;1 ;7];
>>C=A\B
C =
  -4.1538
  -0.1154
  5.0385

2.4.4 矩阵的乘方
若A为方阵,x为标量,则一个矩阵的乘方运算可以表示成A^x。

【例2-12】矩阵的乘方。

>>A=[5 4 6;8 9 7;3 6 4];
>>B=A^2
>>C= A^3
B =
  75  92  82
  133  155  139
  75  90  76
C =
    1357    1620    1422
    2322    2761    2439
    1323    1566    1384

若D不是方阵:

D= A=[5 4 6;8 9 7]
B=D^2

则MATLAB将给出错误信息“Error: The expression to the left of the equals sign is not a valid target for an assignment”。
**
2.4.5 矩阵的行列式**
矩阵的行列式是一个数值。在MATLAB中,det函数用于求方阵A所对应的行列式的值。

【例2-13】求矩阵的行列式。

>>A=[5 4 6;8 9 7;3 6 4]
>>det(A)
A =
   5   4   6
   8   9   7
   3   6   4
ans =
  52

2.4.6 矩阵的秩
矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,rank函数用于求矩阵的秩。

【例2-14】求矩阵的秩。

>>A=[5 4 6;8 9 7;3 6 4]
>>rank(A)
A =
   5   4   6
   8   9   7
   3   6   4
ans =
   3

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

求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在MATLAB中,求一个矩阵的逆非常容易,inv函数用于求方阵的逆矩阵。

【例2-15】求矩阵的逆。

>>A=[1 2 3;5 5 6;7 7 9];
>>inv(A)
ans =
  -1.0000  -1.0000  1.0000
  1.0000  4.0000  -3.0000
  0.0000  -2.3333  1.6667

2.4.8 矩阵的迹
矩阵的迹等于矩阵的特征值之和。在MATLAB中,trace函数用来求矩阵的迹。

【例2-16】求矩阵的迹。

>>A=[1 2 3;4 5 6;7 8 9]
>>rank(A)
A =
   1   2   3
   4   5   6
   7   8   9
ans =
   2

2.4.9 矩阵的范数及其计算函数
在MATLAB中,cond函数用于计算矩阵的范数。该函数的调用方法如下。

cond(A,1):表示计算A的1-范数下的条件数。

cond(A)或cond(A,2) :表示计算A的2-范数数下的条件数。

cond(A,inf):表示计算A的 ∞-范数下的条件数。

【例2-17】为求矩阵的范数。

>>A=[5 4 6;8 9 7;3 6 4];
X1=cond(A,1)
X2=cond(A)
X3=cond(A,inf)

运行结果如下:

X1 =
  19
X2 =
  14.9448
X3 =
  24

2.4.10 矩阵的特征值与特征向量
在MATLAB中,eig函数用于计算矩阵的特征值和特征向量。该函数调用方法如下。

E=eig(A):表示求矩阵A的全部特征值,构成向量E。

[V,D]=eig(A):表示求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。

[V,D]=eig(A, ‘nobalance’):与第2种格式类似,但第2种格式中先对A作相似变换后再求矩阵A的特征值和特征向量,而格式3是直接求矩阵A的特征值和特征向量的。

【例2-18】求矩阵的特征值和特征向量。

>>A=rand(3,3) 
x1=eig(A)
[V,D]=eig(A)
Y1= V*A
Y2= V*D

运行结果如下:

A =
  0.3922  0.7060  0.0462
  0.6555  0.0318  0.0971
  0.1712  0.2769  0.8235
x1 =
  -0.4960
  1.0481
  0.6954
V =
  0.6174  -0.4576  -0.3467
  -0.7822  -0.3723  -0.2087
  0.0841  -0.8075  0.9145
D =
  -0.4960     0     0
     0  1.0481     0
     0     0  0.6954
Y1 =
  -0.1171  0.3253  -0.3015
  -0.5865  -0.6219  -0.2441
  -0.3398  0.2869  0.6785
Y2 =
  -0.3062  -0.4796  -0.2411
  0.3879  -0.3902  -0.1451
  -0.0417  -0.8463  0.6359
相关文章
|
2月前
|
数据可视化 数据挖掘 BI
MATLAB学习之旅:数据统计与分析
在MATLAB中,我们掌握了数据导入、处理及插值拟合等基础技能。接下来,我们将深入数据统计与分析领域,学习描述性统计量(如均值、标准差)、数据分布分析(如直方图、正态概率图)、数据排序与排名、数据匹配查找以及数据可视化(如箱线图、散点图)。这些工具帮助我们挖掘数据中的有价值信息,揭示数据的奥秘,为后续数据分析打下坚实基础。
|
2月前
|
数据建模 数据处理
MATLAB学习之旅:数据建模与仿真应用
在MATLAB的学习中,我们已掌握基础操作、数据处理与统计分析。接下来将进入数据建模与仿真应用阶段,学习如何构建和验证现实世界的模型。我们将从定义模型结构和参数入手,涵盖线性回归、动态系统建模等内容,并通过仿真和实际数据对比评估模型的准确性和可靠性。最终,这些技能将帮助我们在科学研究和工程应用中解决复杂问题。
|
11月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
matlab学习(二)
matlab学习(二)
|
6月前
|
Serverless
MATLAB中的矩阵与向量运算
【10月更文挑战第2天】本文全面介绍了MATLAB中的矩阵与向量运算,包括基本操作、加减乘除、转置、逆矩阵、行列式及各种矩阵分解方法。通过丰富的代码示例,展示了如何利用矩阵运算解决线性方程组、最小二乘法拟合、动态系统模拟和电路分析等问题。掌握这些运算不仅提升编程效率,还能在工程计算和科学研究中发挥重要作用。
303 1
|
8月前
|
计算机视觉
【图像处理】基于灰度矩的亚像素边缘检测方法理论及MATLAB实现
基于灰度矩的亚像素边缘检测方法,包括理论基础和MATLAB实现,通过计算图像的灰度矩来精确定位边缘位置,并提供了详细的MATLAB代码和实验结果图。
214 6
|
8月前
|
计算机视觉
【图像处理】基于Zernike矩的亚像素边缘检测理论及MATLAB实现
基于Zernike矩的亚像素边缘检测理论,并提供了相应的MATLAB代码实现,包括定义7x7的Zernike模板、图像处理、边缘检测和连通域分析等步骤。
175 1
|
10月前
|
机器学习/深度学习 存储 移动开发
MATLAB数据类型和运算符+矩阵创建
MATLAB数据类型和运算符+矩阵创建
148 1
|
10月前
|
机器学习/深度学习 数据可视化 算法
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
113 0
|
11月前
|
算法 数据安全/隐私保护
matlab学习(三)
matlab学习(三)
|
8月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
331 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码

热门文章

最新文章

下一篇
oss创建bucket