📅  最后修改于: 2021-01-07 02:07:53             🧑  作者: Mango
运算符是一个符号,告诉编译器执行各种数字或逻辑操作。 MATLAB设计为主要在整个矩阵和数组上运行。因此,MATLAB中的函数可同时用于标量和非标量数据。
MATLAB有几种类型的运算符,符号和特殊字符来处理变量,函数和算术运算。
算术运算运算符有助于执行简单的算术运算,例如加法,减法,乘法,除法和幂。
Symbol | Role | Corresponding function |
---|---|---|
+ | Addition | plus |
+ | Unary plus | uplus |
– | Subtraction | minus |
– | Unary minus | uminus |
.* | Element-wise multiplication | times |
* | Matrix multiplication | mtimes |
./ | Element-wise right division | rdivide |
.\ | Element-wise left division | ldivide |
/ | Matrix right division | mrdivide |
\ | Matrix left division | mldivide |
.^ | Element-wise power | power |
^ | Matrix power | mpower |
.’ | Transpose | transpose |
‘ | Complex conjugate 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
关系运算符执行值比较操作。
Symbol | Role | Corresponding function |
---|---|---|
== | Equal to | eq |
~= | Not equal to | ne |
> | Greater than | gt |
>= | Greater than or equal to | ge |
< | Less thanlt | |
<= | Less than or equal to | 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。
逻辑运算符执行逻辑运算,并分别使用数字1和0以布尔状态true或false输出结果。
MATLAB提供了三种类型的逻辑运算符和函数:
由MATLAB逻辑运算符和函数返回的值(逐位函数除外)属于逻辑类型,适用于逻辑索引。
以下逻辑运算符和函数在其输入上执行按元素进行逻辑运算以生成大小相同的输出数组。下表显示了使用向量输入A和B的示例,其中
A = [0 1 1 0 1];
0="" 1="" 1];<="" b="[1" p="">
Symbol | Role | Description | Example |
---|---|---|---|
& | Logical ANDIt returns 1 for every element location that is true (nonzero) in both arrays and 0 for all other elements. | A & B = 01001 | |
| | Logical ORIt returns 1 for every element location that is true (nonzero) in either one or the other, or both arrays, and 0 for all other elements. | A | B = 11101 | |
~ | Logical NOTIt complements each element of the input array, A. | ~A = 10010 | |
xor | It returns 1 for every element location that is true (nonzero) in only one array, and 0 for all other elements. | xor(A,B)=10100 |
对于采用两个数组操作数(&,|和xor)的运算符和函数,两个数组必须具有相同的维,并且每个维的大小均相同。一个例外是一个操作数是标量,而另一个不是标量。
注意:MATLAB会将用作逻辑表达式输入的任何有限非零Math 值转换为逻辑1或true。
以下函数在非负整数输入上执行按位逻辑运算。输入可以是标量或数组。如果在数组中,则这些操作将产生大小相似的输出数组。
下表中的示例使用标量输入A和B,其中
A = 28; %二进制11100
b="21;" p="" %二进制10101<="">
Function | Description | Example |
---|---|---|
bitand | It returns the bit-wise AND of two nonnegative integer arguments. | bitand(A,B) = 20 (binary 10100) |
bitor | It returns the bit-wise OR of two nonnegative integer arguments. | bitor(A,B) = 29 (binary 11101) |
bitcmp | It returns the bit-wise complement as an n-bit number, where n is the second input argument to bitcmp. | bitcmp(A,5) = 3 (binary 00011) |
bitxor | It returns the bit-wise exclusive OR of two nonnegative integer arguments. | bitxor(A,B) = 9 (binary 01001) |
以下运算符对逻辑表达式(包括标量值)执行AND和OR运算。它们是短路运算符,因为仅当第一个操作数不能完全确定输出时才计算第二个操作数。
Operator | Description |
---|---|
&& | It returns logical 1 (true) if both inputs calculate to true, and logical 0 (false) if they do not. |
|| | It returns logical 1 (true) if either input, or both, calculate to true, and logical 0 (false) if they do not. |
特殊字符根据其行为和使用位置来执行某些特殊任务。
Symbol | Symbol Name | Role |
---|---|---|
@ | At symbol |
|
. | Period or dot |
|
… | Dot dot dot or ellipsis |
|
, | Comma |
|
: | Colon |
|
; | Semicolon |
|
( ) | Parentheses |
|
[ ] | Square brackets |
|
{ } | Curly brackets |
|
% | Percent |
|
%{ %} | Percent curly bracket |
|
! | Exclamation point |
|
? | Question mark |
|
‘ ‘ | Single quotes |
|
” “ | Double quotes |
|
N/A | Space character |
|
~ | Tilde |
|
= | Equal sign |
|
有些特殊字符只能在字符或字符串的文本中使用。这些特殊字符用于插入换行符或回车符,指定文件夹路径。
Symbol | Symbol Name | Role | Example |
---|---|---|---|
/ \ |
Forward-slash Backslash |
File or folder path separation | Windows: dir([matlabroot ‘\toolbox\matlab\elmat\scriptview1.m’]) or dir([matlabroot ‘/toolbox/matlab/elmat/scriptview1.m’]) UNIX/Linux system: only forward slash dir([matlabroot ‘/toolbox/matlab/elmat/scriptview1.m’]) |
.. | Dot dot | Parent folder | cd ..\..\example Goes up two levels and then down into the example folder |
* | Asterisk | Wildcard character | dir(‘example_*.mat’) Finds all files with names start with example and have a .mat extension |
@ | At symbol | Class folder indicator | \@myScriptClass\get.m |
+ | Plus | Package directory indicator | +mypack +mypack/scriptview1.m +mypack/@myScriptClass |