MATLAB 运算符

2024 年 8 月 29 日 | 阅读 6 分钟

运算符是一种告诉编译器执行各种数值或逻辑运算的符号。MATLAB 主要设计用于对整个矩阵和数组进行操作。因此,MATLAB 中的函数既可以处理标量数据,也可以处理非标量数据。

MATLAB 具有多种类型的运算符、符号和特殊字符,用于处理变量、函数和算术运算。

MATLAB 算术运算符

算术运算符有助于执行简单的算术运算,如加法、减法、乘法、除法和幂运算。

符号角色对应的函数
+加法plus
+一元加uplus
-减法minus
-一元减uminus
.*逐元素乘法times
*矩阵乘法mtimes
./逐元素右除rdivide
.\逐元素左除ldivide
/矩阵右除mrdivide
\矩阵左除mldivide
.^逐元素幂运算power
^矩阵幂运算mpower
.'Transpose转置
'共轭转置ctranspose

算术运算符和数组

除了某些矩阵运算符外,MATLAB 算术运算符对具有相同维度的数组的对应函数进行操作。对于向量和二维数组,两个操作数必须大小相同,除非其中一个是标量。如果一个操作数是标量,而另一个不是,MATLAB 会将标量应用于另一个操作数的每个元素,此属性称为标量扩展。

此示例使用标量扩展来计算标量操作数与矩阵的乘积。

MATLAB 关系运算符

关系运算符执行值比较运算。

符号角色对应的函数
==等于eq
~=不等于ne
>大于gt
>=大于等于ge
<小于 lt
<=小于等于le

关系运算符和数组

MATLAB 关系运算符比较具有相同维度的数组的对应分量。关系运算符始终逐元素进行操作。在此示例中,结果矩阵显示 A 的元素等于 B 的相应部分。

对于向量和二维数组,两个操作数必须大小相同,除非其中一个是标量。在这种情况下,如果一个操作数是标量,而另一个不是,MATLAB 会将标量与另一个操作数的每个元素进行比较。满足特定关系的单元格接收逻辑值 1。不满足关系的单元格接收逻辑值 0。

MATLAB 逻辑运算符

逻辑运算符执行逻辑运算,并以布尔状态(真或假)输出结果,分别使用数字 1 和 0。

MATLAB 提供三种类型的逻辑运算符和函数:

  • 逐元素:它对逻辑数组的对应元素进行操作。
  • 按位:它对整数值或数组的对应位进行操作。
  • 短路:它对标量逻辑表达式进行操作。

MATLAB 逻辑运算符和函数(按位函数除外)返回的值的类型为 logical,适用于逻辑索引。

逐元素运算符和函数

以下逻辑运算符和函数会对输入执行逐元素逻辑运算,生成大小相同的输出数组。下表中使用的示例使用了向量输入 A 和 B,其中:

A = [0 1 1 0 1];
B = [1 1 0 0 1];

符号角色描述示例
&逻辑与。对于两个数组中都为真(非零)的每个元素位置,它返回 1,对于所有其他元素返回 0。A & B = 01001
|逻辑或。对于其中一个或两个数组中为真(非零)的每个元素位置,它返回 1,对于所有其他元素返回 0。A | B = 11101
~逻辑非。它对输入数组 A 的每个元素进行取反。~A = 10010
xor对于仅在一个数组中为真(非零)的每个元素位置,它返回 1,对于所有其他元素返回 0。xor(A,B)=10100

对于接受两个数组操作数(&、| 和 xor)的运算符和函数,两个数组必须具有相同的维度,并且每个维度的大小都相同。唯一的例外是其中一个操作数是标量,而另一个不是。

注意:MATLAB 会将用作逻辑表达式输入的任何有限非零数学值转换为逻辑值 1(真)。

按位运算符

以下函数对非负整数输入执行按位逻辑运算。输入可以是标量或数组。如果是数组,这些运算会生成大小相同的输出数组。

下表中显示的示例使用了标量输入 A 和 B,其中:

A = 28;         % 二进制 11100
B = 21;         % 二进制 10101

函数描述示例
bitand它返回两个非负整数参数的按位 AND。bitand(A,B) = 20
(二进制 10100)
bitor它返回两个非负整数参数的按位 OR。bitor(A,B) = 29
(二进制 11101)
bitcmp它以 n 位数的格式返回按位补码,其中 n 是 bitcmp 的第二个输入参数。bitcmp(A,5) = 3
(二进制 00011)
bitxor它返回两个非负整数参数的按位异或。bitxor(A,B) = 9
(二进制 01001)

短路运算符

以下运算符对逻辑表达式(包括标量值)执行 AND 和 OR 运算。它们是短路运算符,因为只有当第一个操作数不能完全确定输出时,它们才会计算第二个操作数。

运算符描述
&&如果两个输入都计算为 true,它将返回逻辑值 1(真),如果不是,则返回逻辑值 0(假)。
||如果其中一个输入或两个输入计算为 true,它将返回逻辑值 1(真),如果不是,则返回逻辑值 0(假)。

MATLAB 特殊字符

特殊字符根据其行为和使用位置执行特定的任务。

符号符号 名称角色
@at 符号
  • 管理构造和引用的函数
  • 调用超类方法
.句点或点
  • 小数点
  • 逐元素操作
  • 结构体字段访问
  • 对象属性或方法说明符
...点点点或省略号
  • 行续写
,Comma (逗号)
  • 分隔符
:Colon (冒号)
  • 向量创建
  • 索引
  • for 循环迭代
;Semicolon (分号)
  • 表示行的结束
  • 抑制代码行输出
( )括号
  • 运算符优先级
  • 函数参数封闭
  • 索引
[ ]方括号
  • 数组连接
  • 数组构造
  • 空矩阵和数组元素删除
  • 多个输出参数赋值
{ }花括号
  • 单元数组赋值和内容
%百分号
  • 评论
  • 转换说明符
%{ %}百分号花括号
  • 块注释
!感叹号
  • 操作系统命令
?问号
  • MATLAB 类的元类
' '单引号
  • 字符数组构造函数
" "双引号
  • 字符串构造函数
不适用空格字符
  • 分隔符
~Tilde (波浪号)
  • 逻辑非
  • 参数占位符
=等号
  • 赋值

MATLAB 字符串和字符格式化特殊字符

有一些特殊字符仅用于字符或字符串的文本中。这些特殊字符用于插入换行符或回车符、指定文件夹路径。

符号符号 名称角色示例
/
\
正斜杠
反斜杠
文件或文件夹路径分隔符Windows
dir([matlabroot '\toolbox\matlab\elmat\scriptview1.m']) 或
dir([matlabroot '/toolbox/matlab/elmat/scriptview1.m'])
UNIX/Linux 系统:仅使用正斜杠
dir([matlabroot '/toolbox/matlab/elmat/scriptview1.m'])
..点点父文件夹cd ..\..\example
向上移动两个级别,然后进入 example 文件夹
*Asterisk (星号)通配符dir('example_*.mat')
查找所有以 example 开头并具有 .mat 扩展名的文件
@at 符号类文件夹指示符\@myScriptClass\get.m
+加号包目录指示符+mypack
+mypack/scriptview1.m
+mypack/@myScriptClass

下一主题格式化文本