×
MATLAB 介绍MATLAB 安装MATLAB 基本语法MATLAB 变量MATLAB 命令MATLAB M-FilesMATLAB 数据类型MATLAB 运算符MATLAB 算术运算MATLAB 逻辑运算MATLAB 关系运算MATLAB 位运算MATLAB 集合操作MATLAB 决策制定MATLAB if...end 语句MATLAB if...else...end 语句MATLAB if...elseif...else...endMATLAB 嵌套if语句MATLAB switch语句MATLAB 嵌套switch语句MATLAB 循环类型MATLAB while循环MATLAB for循环MATLAB 嵌套循环MATLAB break语句MATLAB continue语句MATLAB 向量MATLAB 向量的加法和减法MATLAB 标量向量乘法MATLAB 转置向量MATLAB 追加向量MATLAB 向量的模MATLAB 向量点积MATLAB 等差元素向量MATLAB 矩阵MATLAB 矩阵的加法和减法MATLAB 除法(左,右)矩阵MATLAB 矩阵标量操作MATLAB 矩阵的转置MATLAB 串联矩阵MATLAB 矩阵乘法MATLAB 矩阵的行列式MATLAB 逆矩阵MATLAB 数组MATLAB 冒号符号MATLAB 数字MATLAB 字符串MATLAB 函数MATLAB 数据导入MATLAB 数据导出MATLAB 绘图MATLAB 图形MATLAB 代数MATLAB 微积分MATLAB 多项式MATLAB 变换MATLAB GNU Octave教程MATLAB Simulink 仿真

MATLAB算术运算


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

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

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

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

    操作符 描述
+ 加法或一元加号。A + B将A和B。 A和B必须具有相同的尺寸,除非一个人是一个标量。一个标量,可以被添加到任何大小的矩阵。
- 减法或一元减号。A - B,减去B从A和B必须具有相同的大小,除非是一个标量。可以从任意大小的矩阵中减去一个标量。
*

矩阵乘法;是一个更精确的矩阵A和B的线性代数积,

矩阵乘法对于非纯量A和B,列一个数必须等于B.标量可以乘以一个任意大小的矩阵的行数。

Matrix Multiplication

.* 数组的乘法;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,向下舍入到最接近的负整数。

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)