许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB入门教程005:MATLAB运算符与算术运算详解

MATLAB入门教程005:MATLAB运算符与算术运算详解

阅读数 5
点赞 0
article_banner

MATLAB运算符

MATLAB运算符

数组中唯一的值运算符是一个符号,它将要执行的数学或者逻辑操作传达给编译器执行。

MATLAB 设计工作主要是对整个矩阵和阵列。因此,运算符在 MATLAB 工作标和非标量数据。

MATLAB 的基本运算 类  型:

  • 算术运算符
  • 逻辑运算符
  • 关系运算符
  • 位运算
  • 集合运算

算术运算符

MATLAB 的工作针对的是整个矩阵和阵列,它允许两种不同类型的算术运算:

  • 矩阵算术运算
  • 阵列算术运算

矩阵的算术运算是线性代数中的定义相同。执行 数组  操作,无论是在一维和多维数组元素的元素。

矩阵运算符和数组运算符是有区别的句号(.)符号。然而,由于加法和减法运算矩阵和阵列是相同的,操作者这两种情况下是相同的。下表给出了运算符的简要说明:


运算符描述
+加法或一元加号。A + B将A和B。 A和B必须具有相同的尺寸,除非一个人是一个标量。一个标量,可以被添加到任何大小的矩阵。
-减法或一元减号。A - B,减去B从A和B必须具有相同的大小,除非是一个标量。可以从任意大小的矩阵中减去一个标量。
*矩阵乘法;是一个更精确的矩阵A和B的线性代数积, 矩阵乘法对于非纯量A和B,列一个数必须等于B.标量可以乘以一个任意大小的矩阵的行数。
.*数组的乘法;A.*B是数组A和B的元素积,A和B必须具有相同的大小,除非A、B中有一个是标量。
/斜线或矩阵右除法;B/A与B * inv(A)大致相同。更确切地说:

        B/A = (A'B')'
./矩阵右除法;矩阵A与矩阵B相应元素相除(A、B为同维度的矩阵)
.\反斜杠或矩阵左除;如果A是一个方阵,AB是大致相同的INV(A)* B,除非它是以不同的方式计算。如果A是一个n*n的矩阵,B是一个n组成的列向量,或是由若干这样的列的矩阵,则X = AB 是方程 AX = B ,如果A严重缩小或者几乎为单数,则显示警告消息。
\数组左除法;A. B是元素B(i,j)/A(i,j)的矩阵。A和B必须具有相同的大小,除非其中一个是标量。
^矩阵的幂。X^P是X到幂P,如果p是标量;如果p是一个整数,则通过重复平方计算功率。如果整数为负数,X首先反转。对P值的计算,涉及到特征值和特征向量,即如果[ D ] = V,EIG(x),那么X^P = V * D.^P / V。
.^A.^B:A的每个元素的B次幂(A、B为同纬度的矩阵)
'矩阵的转置;A'是复数矩阵A的线性代数转置,这是复共轭转置。
.'数组的转置;A.'是数组A的转置,对于复数矩阵,这不涉及共轭。

逻辑运算符

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

  • Element-wise -这些运算符的逻辑阵列上运行相应的元素。
  • Short-circuit -这些运算上的标量,逻辑表达式。

Element-wise 的逻辑运算符操作元素元素逻辑阵列。符号&,|和〜逻辑数组运算符AND,OR,NOT。

允许短路短路逻辑运算符,逻辑运算。符号 && 和 | | 是短路逻辑符 AND 和 OR。


关系运算符

关系运算符标和非标量数据上也能正常工作。关系运算符对数组进行元素元素元素设置为逻辑1(真)的关系是真实的和元素设置为逻辑0(假),它是两个阵列,并返回一个同样大小的逻辑阵列之间的比较。

下表显示了 MATLAB 中的关系运算符:


运算符描述
<小于
<=小于或等于
>大于
>=大于或等于
==等于
~=不等于

位运算

位运算符位和执行位位操作。 &,|和^的 真值表 如下:


pqp & qp | qp ^ q
00000
01011
11110
10011

假设如果A= 60,B =13,他们现在以二进制格式将如下:

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

MATLAB提供位运算,如'位','位'和'位不操作,移位操作等各种函数

以下的表格显示了常用的按位运算:


函数目的/作用
bitand(a, b)当a、b是一个或数个无符号整数或无符号整数数组,返回参数a和b位和,
bitcmp(a)a的补码
bitget(a,pos)在指定位置pos中获取位,在整数数组a中
bitor(a, b)对数a和b按位或
bitset(a, pos)a的集合点在一个特定的位置pos
bitshift(a, k)返回一个移到左K位,相当于乘以2K。K负值对应的位权转移或除以2|K|向负无穷舍入到最近的整数。任何溢出位都被截断。
bitxor(a, b)对数a和b按位异或
swapbytes交换字节顺序

集合操作符

MATLAB提供各种功能集合运算,如集,交集和测试组成员等。

下表是对一些常用的设置操作的例举与描述:


函数描述
intersect(A,B)设置两个数组的交集;返回A和B所共有的值。返回的值按排序顺序排列。
intersect(A,B,'rows')将A和B的每一行作为单个实体处理,并返回A和B的公共行。返回的矩阵的行按排序顺序排列。
ismember(A,B)返回与A大小相同的数组,包含1(true),其中A的元素在其他地方的B中找到,它返回0(false)。
ismember(A,B,'rows')将A和B的每一行作为单个实体处理,并返回一个包含1(true)的向量,其中矩阵A的行也是B的行;否则,它返回0(false)。
issorted(A)如果A的元素按排序顺序返回逻辑1(true),否则返回逻辑0(false)。输入A可以是向量,也可以是N-by-1或1-by-N的字符串数组。如果A和sort(A)的输出相等,则A被认为是排序的。
issorted(A, 'rows')如果二维矩阵A的行按排序顺序返回逻辑1(真),否则返回逻辑0(假)。 如果A和排序(A)的输出相等,则认为矩阵A被排序。
setdiff(A,B)设置两个数组的差值;返回不在B中的值。返回数组中的值按排序顺序排列。
setdiff(A,B,'rows')将每一行A和B行作为单个实体处理,并返回一个不在B中的行。返回的矩阵的行按排序顺序排列。 “行”选项不支持单元格数组。
setxor设置两个数组的异或
union设置两个数组的并集
unique数组中唯一的值


MATLAB算术运算

MATLAB的算术运算有两种不同类型:1)矩阵算术运算;2)阵列算术运算。

MATLAB矩阵算术运算与线性代数中的定义相同:执行数组操作,无论是在一维和多维数组元素的元素。

矩阵运算符和数组运营商是有区别的句点(.)符号。然而,由于加法和减法运算矩阵和阵列是相同的,操作者这两种情况下是相同的。

下表给出了运算符的简要说明:


   操作符描述
+加法或一元加号。A + B将A和B。 A和B必须具有相同的尺寸,除非是一个标量。一个标量,可以被添加到任何大小的矩阵。
-减法或一元减号。A - B,减去B从A和B必须具有相同的大小,除非是一个标量。可以从任意大小的矩阵中减去一个标量。
*矩阵乘法;是一个更精确的矩阵A和B的线性代数积, 矩阵乘法对于非纯量A和B,列一个数必须等于B.标量可以乘以一个任意大小的矩阵的行数。
.*数组的乘法;A.*B是数组A和B的元素积,A和B必须具有相同的大小,除非A、B中有一个是标量。
/斜线或矩阵右除法;B/A与B * inv(A)大致相同。更确切地说: B/A = (A'B')'
./矩阵右除法;矩阵A与矩阵B相应元素相除(A、B为同纬度的矩阵)
\反斜杠或矩阵左除;如果A是一个方阵,AB是大致相同的INV(A)* B,除非它是以不同的方式计算。如果A是一个n*n的矩阵,B是一个n组成的列向量,或是由若干这样的列的矩阵,则X = AB 是方程 AX = B ,如果A严重缩小或者几乎为单数,则显示警告消息。
.\数组左除法;A. B是元素B(i,j)/A(i,j)的矩阵。A和B必须具有相同的大小,除非其中一个是标量。
^矩阵的幂。X^P是X到幂P,如果p是标量;如果p是一个整数,则通过重复平方计算功率。如果整数为负数,X首先反转。对P值的计算,涉及到特征值和特征向量,即如果[ D ] = V,EIG(x),那么X^P = V * D.^P / V。
.^A.^B:A的每个元素的B次幂(A、B为同纬度的矩阵)
'矩阵的转置;A'是复数矩阵A的线性代数转置,这是复共轭转置。
.'数组的转置;A'是数组A的转置,对于复数矩阵,这不涉及共轭。



   举例说明

下面的例子显示使用标量数据的算术运算符。创建一个 脚本文件  ,用下面的代码:

a = 10;
b = 20;
c = a + b
d = a - b
e = a * b
f = a / b
g = a \ b
x = 7;
y = 3;
z = x ^ y

运行该文件,产生结果如下:

c =
    30
d =
   -10
e =
   200
f =
    0.5000
g =
     2
z =
   343

MATLAB算术运算功能

除了上述列举的一些算术运算符,MATLAB 中还拥有以下的命令/功能:


函数描述
uplus(a)一元加号;增加量a
plus (a,b)相加;返回 a + b
uminus(a)一元减号;减少a
minus(a, b)相减;返回 a - b
times(a, b)数组相乘;返回 a.*b
mtimes(a, b)矩阵相乘;返回 a* b
rdivide(a, b)右阵划分;返回 a ./ b
ldivide(a, b)左阵划分;返回 a. b
mrdivide(A, B)求解线性方程组xA = B for x
mldivide(A, B)求解线性方程组xA = B for x
power(a, b)数组求幂;返回 a.^b
mpower(a, b)矩阵求幂;返回 a ^ b
cumprod(A)累积乘积;返回与包含累积乘积的数组A相同大小的数组。 如果A是向量,则cumprod(A)返回一个包含A的元素的累积乘积的向量。 如果A是矩阵,则cumprod(A)返回一个矩阵,其中包含A的每一列的累积乘积。 如果A是一个多维数组,那么cumprod(A)将沿着第一个非正整数维。
cumprod(A, dim)沿维 dim 返回返回累积乘积。
cumsum(A)累加总和;返回包含累积和的数组A 如果A是向量,则cumsum(A)返回一个包含A的元素的累积和的向量。 如果A是矩阵,则cumsum(A)返回一个矩阵,其中包含A的每列的累积和。 如果A是一个多维数组,那么cumsum(A)将沿着第一个非整数维度起作用。
cumsum(A, dim)返回沿着dim的元素的累积和。
diff(X)差分和近似导数;计算x相邻元素之间的差异。 如果X是向量,则diff(X)返回相邻元素之间的差异的向量,比X短一个元素:[X(2)-X(1)X(3)-X(2)... X(N)-X(N-1)] 如果X是一个矩阵,则diff(X)返回行差的矩阵:[X(2:m,...)-X(1:m-1,:)]
diff(X,n)递归应用n次,导致第n个差异。
diff(X,n,dim)它是沿标量dim指定的维数计算的第n个差分函数。 如果order n等于或超过Dim的长度,diff将返回一个空数组。
prod(A)数组元素的乘积;返回A数组元素的乘积。 如果A是向量,则prod(A)返回元素的乘积。 如果A是非空矩阵,则prod(A)将A的列作为向量,并返回每列乘积的行向量。 如果A是一个空的0-by-0矩阵,则prod(A)返回1。 如果A是一个多维数组,那么prod(A)将沿着第一个非子集维度行为并返回一个乘积数组。 该维数的尺寸减小到1,而所有其他维数的尺寸保持不变。 如果输入A为单个,则prod函数计算并返回B为单个;对于所有其他数字和逻辑数据类型,prod函数计算并返回B为double。
prod(A,dim)沿dim维度返回乘积。 例如,如果A是矩阵,则prod(A,2)是包含每一行的乘积的列向量。
prod(___,datatype)在数据类型指定的类中乘以并返回一个数组。
sum(A)数组元素的总和;返回数组的不同维度的和。如果A是浮动的,那么是双倍或单个,B是本地累加的,它与A相同,B与A具有相同的类。如果A不是浮动的,则B被累加为双,B具有类double。 如果A是向量,则sum(A)返回元素的总和。 如果A是矩阵,则sum(A)将A的列作为向量,返回每列的和的行向量。 如果A是一个多维数组,sum(A)将沿着第一个非单例维度的值作为向量来处理,返回一个行向量的数组。
sum(A,dim)沿标量A的维度求和。
sum(..., 'double') sum(..., dim,'double')执行双精度加法,并返回double类型的答案,即使A具有数据类型单一或整型数据类型。这是整型数据类型的默认值。
sum(..., 'native') sum(..., dim,'native')在本机数据类型A中执行添加,并返回相同数据类型的答案。 这是单和双的默认值。
ceil(A)向正无穷方向舍入;将a元素舍入为大于或等于A的最近整数。
fix(A)舍入为零
floor(A)向负无穷方向舍入;将a元素舍入为小于或等于a的最近整数。
idivide(a, b) idivide(a, b,'fix')整数除法的舍入选项;与A./B相同,只是分数的商向零舍入到最接近的整数。
idivide(a, b, 'round')分数的商舍入到最近的整数。
idivide(A, B, 'floor')分数商向负无穷大舍入到最接近的整数。
idivide(A, B, 'ceil')分数商向无穷大舍入到最接近的整数。
mod (X,Y)除法后的模数;返回X - n.* Y,其中 n = floor(X./Y)。 如果Y不是整数,并且商X / Y在整数的舍入误差内,则n是整数。 输入X和Y必须是相同大小的真实数组或实数标量(提供Y〜= 0)。 请注意: mod(X,0) 是 X mod(X,X) 是 0 对于 X = Y 和 Y = 0的 mod(X,Y)具有与Y相同的符号。
rem (X,Y)除法之后的余数;返回X - n.* Y,其中n = fix(X./Y)。 如果Y不是整数,并且商X / Y在整数的舍入误差内,则n是整数。 输入X和Y必须是相同大小的真实数组或实数标量(提供Y〜= 0)。 请记住: rem(X,0) 是 NaN X〜= 0的rem(X,X)为0 对于 X~=Y 和 Y~=0 的rem(X,Y)与X具有相同的符号。
round(X)舍入到最接近的整数; 将X的元素舍入到最接近的整数。 正数元素的小数部分为0.5,最大到最接近的正整数。 负数元素的小数部分为-0.5,向下舍入到最接近的负整数。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空