📜  MATLAB运算符

📅  最后修改于: 2021-01-07 02:07:53             🧑  作者: Mango

MATLAB运算子

运算符是一个符号,告诉编译器执行各种数字或逻辑操作。 MATLAB设计为主要在整个矩阵和数组上运行。因此,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

MATLAB关系运算符

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

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。

MATLAB逻辑运算符

逻辑运算符执行逻辑运算,并分别使用数字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.

MATLAB特殊字符

特殊字符根据其行为和使用位置来执行某些特殊任务。

Symbol Symbol Name Role
@ At symbol
  • Function manage construction and reference
  • Call super-class methods
. Period or dot
  • Decimal point
  • Element-wise operations
  • Structure field access
  • Object property or method specifier
Dot dot dot or ellipsis
  • Line continuation
, Comma
  • Separator
: Colon
  • Vector creation
  • Indexing
  • For-loop iteration
; Semicolon
  • Signify end of the row
  • Suppress output of code line
( ) Parentheses
  • Operator precedence
  • Function argument enclosure
  • Indexing
[ ] Square brackets
  • Array concatenation
  • Array construction
  • Empty matrix and array element deletion
  • Multiple output argument assignment
{ } Curly brackets
  • Cell array assignment and contents
% Percent
  • Comment
  • Conversion specifier
%{ %} Percent curly bracket
  • Block comments
! Exclamation point
  • Operating system command
? Question mark
  • Metaclass for MATLAB class
‘ ‘ Single quotes
  • Character array constructor
” “ Double quotes
  • String constructor
N/A Space character
  • Separator
~ Tilde
  • Logical NOT
  • Argument placeholder
= Equal sign
  • assignment

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

有些特殊字符只能在字符或字符串的文本中使用。这些特殊字符用于插入换行符或回车符,指定文件夹路径。

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

>


>