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 (冒号) | | ; | Semicolon (分号) | | ( ) | 括号 | | [ ] | 方括号 | - 数组连接
- 数组构造
- 空矩阵和数组元素删除
- 多个输出参数赋值
| { } | 花括号 | | % | 百分号 | | %{ %} | 百分号花括号 | | ! | 感叹号 | | ? | 问号 | | ' ' | 单引号 | | " " | 双引号 | | 不适用 | 空格字符 | | ~ | 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 |
|