MATLAB  的基本算术运算符有:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘 方)和’(转置),下面我们分别进行介绍。
 
notion image

矩阵的加法

首先是矩阵的加法。在线性代数中,只有两个大小完全相同的矩阵才可以进行相加运算, 而在 MATLAB 中,只要两个矩阵的大小兼容,就能够进行计算。
以矩阵的加法为例,下表我们给出了 MATLAB 支持的五种算术运算的兼容模式
情形
示例:计算 A+B
计算结果
解释
两个大小完全相同的输入
A = 6    5    6 2    9    2
B = 7    8    9 8    6    2
ans = 13    13    15 10    15    4
将 A 和 B 对应位置 的元素相加
有一个输入是标量(常数)
A = 2    1    3 7    2    4
B = 4
ans = 6    5    7 11    6    8
矩阵的每个元素都 加上这个标量
一个输入是矩阵, 另一个输 入是具有相同行数的列向量
A = 3    6    5 2    6    8
B = 6 5
ans = 9    12    11 7    11    13
把 B  堆叠成完全相 同的三列, 然后再和 A 相加 相当于 repmat(B,1,3)
一个输入是矩阵, 另一个输 入是具有相同列数的行向量
A = 3    5    6 6    9    4
B = 3    9    6
ans = 6    14    12 9    18    10
把 B  堆叠成完全相 同的两行, 然后再和 A 相加 相当于 repmat(B,2,1)
一个输入是列向量,另一个 输入是行向量。
A = 2 5
B = 1     8    3
ans = 3    10    5 6    13    8
把 A  堆叠成完全相 同的三列, 把 B 堆叠 成完全相同的两行, 然后相加 相当于 repmat(A,1,3) repmat(B,2,1)
事实上,执行加法运算时, MATLAB  会将大小兼容的矩阵隐式扩展为相同的大小,然后 再将对应位置的元素相加, 这种计算方式在 MATLAB 中称为“按对应位置的元素运算”。我们 在上一节介绍的 min 函数和 max 函数在计算两个矩阵对应位置元素的最小值和最大值时也支 持上表五种模式。

矩阵的减法

类似的,矩阵的减法也支持上表五种兼容模式,其计算方式也是“按对应位置的元素运算”, 我们看下面的例子:
notion image

矩阵的乘法

矩阵的乘法则有所不同,在 MATLAB 中, 矩阵的乘法分为两种第一种是线性代数中定 义的矩阵的乘法, 使用的运算符号是乘号“*”,例如矩阵 A*B,矩阵的乘法必须要满足前面矩 阵 A 的列数和后面矩阵 B 的行数相等; 第二种是按对应位置的元素相乘,我们需要使用运算 符号点乘“.*”,例如 A.*B,此时 A 和 B 的大小只需要满足上方表格介绍的五种兼容模式。特 别地, 如果一个矩阵和标量(常数) 相乘, 那么使用乘号“* ”和点乘“.* ”得到的结果相同。
notion image

矩阵的除法

下面我们再来介绍矩阵的除法。事实上, 在我们学的线性代数中, 矩阵并不支持除法的运 算,但 MATLAB 中定义了矩阵除法的计算规则。
在 MATLAB 中,除号有两种,分别是 / (右除)和 \ (左除),命令“x = B/A”表示对 线性方程组 x*A = B 求解 x;命令“ x = A\B”则表示对线性方程组 A*x = B 求解 x。这 两个符号使用频率很低,大家不需要强记,需要用时查询即可。
我们平时使用更多的是对矩阵进行点除的操作,即将两个矩阵按对应位置的元素做除法。 其中命令“A./B”表示用 A 的每个元素除以 B 的对应元素,A 和 B 的大小必须兼容;命令 “A.\B”则表示用 B 的每个元素除以 A 的对应元素,这个用法不太符合我们的习惯。因此, 大家只需要掌握“A./B”的用法即可。
notion image
特别地,如果 B 是标量,那么 A./B 的结果和 A/B 的结果相同。

矩阵的乘方

矩阵的乘方也有两种用法,分别是“^ ”和“.^ ”。
其中,“^ ”表示矩阵的幂运算,例如 A 是一个方阵,那么 A ^ 3 等价于 A*A*A;“.^ ”表 示对矩阵中的每一个元素分别进行乘方计算, 例如 A .^ 0.5 表示对矩阵 A 中的每一个元素开根 号,等价于 sqrt(A)。
notion image

拓展:计算逆矩阵

特别地, 如果 A 是一个可逆的方阵, 那么 A^(-1)可用来计算 A 的逆矩阵(inverse matrix)。 另外, MATLAB 中的 inv 函数也可以计算逆矩阵,它们的计算结果相同。
notion image
根据线性代数中逆矩阵的定义, 互为逆矩阵的两个矩阵的乘积为单位矩阵(主对角线为 1, 其余位置为 0 的方阵),我们通过上表的第三行代码验证了这一点。注意:由于浮点数运算的 误差, 计算结果中的元素可能和 0 或 1 有微小的差异, 我们使用 format long g 命令显示更多的 小数点:
notion image
例如第一行第二个元素,理论上应为 0,但 MATLAB 计算结果约为 

矩阵的转置运算

最后我们再来介绍矩阵的转置运算, 矩阵的转置符号为英文的单引号:“ ’ ”,它也可以在 前面加上点变成“. ’ ”,两者的区别在于对矩阵中复数的处理, 使用“ ’ ”会在转置的同时将复 数变为共轭复数(实部不变虚部反号),使用“ . ’ ”则会保持原来的复数。
notion image
当然,通常情况下我们的矩阵中全是实数,那么使用“ ’ ”和“. ’ ”的效果相同。
  • (我个人觉得: 矩阵的转置应该属于线性代数中的知识点, 但是 MATLAB 官网将其视为 算术运算的一种。因此,本书也是参考官网的安排将其放在了这一小节)

练习-评价预测效果好坏

notion image

练习-计算优化算法常见的测试函数

notion image
 

Loading...
公告
🎉大学生科技协会(2024)网站试运行🎉
-- 感谢您的支持 --- 科协获:
小平科技创新团队 (青少年科技创新领域国家级最高荣誉,全校唯一)
全国高校百强社团 中国大学生ican物联网创新创业实践教育基地 校十佳社团 “一院一品”智能空间 科技竞赛优秀组织单位
阅读科协简介了解更多吧!