本文概述
运算符是一个符号, 告诉编译器执行各种数字或逻辑操作。 MATLAB设计为主要在整个矩阵和数组上运行。因此, MATLAB中的函数可用于标量和非标量数据。
MATLAB具有几种类型的运算符, 符号和特殊字符, 用于处理变量, 函数和算术运算。
MATLAB算术运算符
算术运算符有助于执行简单的算术运算, 例如加法, 减法, 乘法, 除法和幂。
Symbol | Role | Corresponding function |
---|---|---|
+ | Addition | plus |
+ | 一元加 | uplus |
– | Subtraction | minus |
– | 一元减 | uminus |
.* | Element-wise multiplication | times |
* | 矩阵乘法 | mtimes |
./ | 按元素划分右 | rdivide |
.\ | 按元素左划分 | ldivide |
/ | 矩阵右除法 | mrdivide |
\ | 矩阵左除法 | mldivide |
.^ | Element-wise power | power |
^ | Matrix power | mpower |
.’ | Transpose | transpose |
‘ | 复共轭转置 | ctranspose |
算术运算符和数组
除某些矩阵运算符外, MATLAB算术运算符还处理具有相等维数的数组的相应函数。对于向量和矩形数组, 除非一个是标量, 否则两个操作数的大小必须相等。如果一个操作数是标量, 而另一个不是, 则MATLAB将标量应用于另一操作数的每一项, 此属性称为标量扩展。
本示例使用标量扩展来评估标量操作数与矩阵的乘积。
A = magic (3)
A =
8 1 6
3 5 7
4 9 2
3 * A
ans=
24 3 18
9 15 21
12 27 6
MATLAB关系运算符
关系运算符执行值比较操作。
Symbol | Role | 对应功能 |
---|---|---|
== | Equal to | eq |
~= | 不等于 | ne |
> | 比…更棒 | gt |
>= | 大于或等于 | ge |
< | 小于lt | |
<= | 小于或等于 | le |
关系运算符和数组
MATLAB关系运算符比较具有相等维数的数组的相应组件。关系运算符始终按元素进行操作。在此示例中, 结果矩阵存在, 其中A的元素等于B的相应部分。
A = [2 7 6; 9 0 5; 3 0.5 6];
B = [8 7 0; 3 2 5; 4 -1 7];
A == B
ans =
0 1 0
0 0 1
0 0 0
对于向量和矩形数组, 除非一个是标量, 否则两个操作数的大小必须相同。在这种情况下, 其中一个操作数是标量, 而另一个不是标量, MATLAB将针对另一个操作数的每个元素测试标量。特定关系为真的位置接收逻辑1。关系为假的位置接收逻辑0。
MATLAB逻辑运算符
逻辑运算符执行逻辑运算, 并分别使用数字1和0以布尔状态true或false输出结果。
MATLAB提供了三种类型的逻辑运算符和函数:
- 元素级:它适用于逻辑数组的相应元素。
- 按位:它适用于整数值或数组的相应位。
- 短路:它适用于标量, 逻辑表达式。
由MATLAB逻辑运算符和函数返回的值(按位函数除外)属于逻辑类型, 适合与逻辑索引一起使用。
明智的运算符和函数
以下逻辑运算符和函数在其输入上执行按元素进行逻辑运算, 以生成大小相同的输出数组。下表显示了使用向量输入A和B的示例, 其中
A = [0 1 1 0 1];
B = [1 1 0 0 1];
Symbol | Role | Description | Example |
---|---|---|---|
& | 逻辑AND对于两个数组中每个为真(非零)的元素位置, 它返回1, 对于所有其他元素, 它返回0。 | A&B = 01001 | |
| | 逻辑或对于一个或另一个或两个数组中每个为真(非零)的元素位置, 它返回1, 对于所有其他元素, 返回0。 | A | B = 11101 | |
~ | 逻辑NOT补充输入数组A的每个元素。 | 〜A = 10010 | |
xor | 对于仅在一个数组中为真(非零)的每个元素位置, 它返回1;对于所有其他元素, 它返回0。 | 异或(A, B)= 10100 |
对于采用两个数组操作数(&, |和xor)的运算符和函数, 两个数组必须具有相同的维, 并且每个维的大小均相同。一个例外是一个操作数是标量, 而另一个不是标量。
注意:MATLAB将用作逻辑表达式输入的任何有限非零数学值转换为逻辑1或true。
位智能运算符
以下函数在非负整数输入上执行按位逻辑运算。输入可以是标量或数组。如果在数组中, 则这些操作将生成大小相似的输出数组。
下表中的示例使用标量输入A和B, 其中
A = 28; %二进制11100
B = 21; %二进制10101
Function | Description | Example |
---|---|---|
bitand | 它返回两个非负整数参数的按位与。 | bitand(A, B)= 20(二进制10100) |
bitor | 它返回两个非负整数参数的按位或。 | bitor(A, B)= 29(二进制11101) |
bitcmp | 它将按位补码返回为n位数字, 其中n是bitcmp的第二个输入参数。 | bitcmp(A, 5)= 3(二进制00011) |
bitxor | 它返回两个非负整数参数的按位异或。 | bitxor(A, B)= 9(二进制01001) |
短路操作员
以下运算符对逻辑表达式(包括标量值)执行AND和OR运算。它们是短路运算符, 因为仅当第一个操作数不能完全确定输出时才计算第二个操作数。
Operator | Description |
---|---|
&& | 如果两个输入都计算为真, 则返回逻辑1(真), 否则返回逻辑0(假)。 |
|| | 如果输入或两者都计算为true, 则返回逻辑1(true), 否则返回逻辑0(false)。 |
MATLAB特殊字符
特殊字符根据其行为和使用位置来执行某些特殊任务。
Symbol | 符号名称 | Role |
---|---|---|
@ | 在符号 | 函数管理构造和引用调用超类方法 |
. | 句点或点 | 小数点逐元素操作结构字段访问对象属性或方法说明符 |
… | 点点或省略号 |
|
, | Comma |
|
: | Colon | 向量创建索引循环迭代 |
; | Semicolon | 表示行的末尾禁止代码行的输出 |
( ) | Parentheses | 运算符优先级函数自变量包围索引 |
[ ] | 方括号 | 数组串联数组构造空矩阵和数组元素删除多输出参数分配 |
{ } | 大括号 | 单元格数组分配和内容 |
% | Percent | 评论转换说明符 |
%{ %} | 大括号百分比 | 阻止评论 |
! | 感叹号 | 操作系统命令 |
? | Question mark | MATLAB类的元类 |
‘ ‘ | Single quotes | 字符数组构造函数 |
” “ | Double quotes |
|
N/A | 空格字符 |
|
~ | Tilde | 逻辑非参数占位符 |
= | Equal sign |
|
MATLAB字符串和字符格式特殊字符
有一些特殊字符只能在字符或字符串的文本内使用。这些特殊字符用于插入换行符或回车符, 指定文件夹路径。
Symbol | 符号名称 | Role | Example |
---|---|---|---|
/ \ | 正斜杠反斜杠 | 文件或文件夹路径分隔 | 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 symbol | 类文件夹指示器 | \ @myScriptClass \ get.m |
+ | Plus | 包目录指示符 | + mypack + mypack / scriptview1.m + mypack / @ myScriptClass |
评论前必须登录!
注册