教程 > > 阅读:75

matlab 运算符——迹忆客-ag捕鱼王app官网

运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。 matlab 主要设计用于对整个矩阵和数组进行操作。 因此,matlab 中的运算符既适用于标量数据,也适用于非标量数据。 matlab 允许以下类型的基本运算

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

算术运算符

matlab 允许两种不同类型的算术运算 -

  • 矩阵算术运算
  • 数组算术运算

矩阵算术运算与线性代数中的定义相同。 数组操作是逐个元素执行的,包括一维和多维数组。

矩阵运算符和数组运算符通过句点 . 符号区分。 但是,由于矩阵和数组的加法和减法运算相同,因此两种情况的运算符相同。 下表给出了运算符的简要说明

序号 运算符 描述
1 加法或一元加法。 a b 将存储在变量 a 和 b 中的值相加。a 和 b 必须具有相同的大小,除非其中一个是标量。 标量可以添加到任意大小的矩阵中。
2 - 减法或一元减法。 a-b 从 a 中减去 b 的值。a 和 b 必须具有相同的大小,除非一个是标量。 可以从任意大小的矩阵中减去标量。
3 * 矩阵乘法。 c = a*b 是矩阵 a 和 b 的线性代数积。更准确地说,矩阵乘法
对于非标量 a 和 b,a 的列数必须等于 b 的行数。标量可以乘以任意大小的矩阵。
4 .* 数组乘法。 a.*b 是数组 a 和 b 的逐个元素乘积。a 和 b 必须具有相同的大小,除非其中之一是标量。
5 / 斜线或矩阵右除法。 b/a 与 b*inv(a) 大致相同。 更准确地说,b/a = (a'\b')'。
6 ./ 数组右除法。 a./b 是包含元素 a(i,j)/b(i,j) 的矩阵。 a 和 b 必须具有相同的大小,除非其中之一是标量。
7 \ 反斜杠或矩阵左除法。 如果 a 是方阵,则 a\b 与 inv(a)*b 大致相同,只是计算方式不同。 如果 a 是 n×n 矩阵,b 是具有 n 个分量的列向量,或具有多个此类列的矩阵,则 x = a\b 是方程 ax = b 的解。如果出现以下情况,将显示一条警告消息 a 严重缩放或几乎是奇异的。
8 .\ 数组左除法。 a.\b 是包含元素 b(i,j)/a(i,j) 的矩阵。 a 和 b 必须具有相同的大小,除非其中之一是标量。
9 ^ 矩阵功率。 如果 p 是标量,则 x^p 是 x 的 p 次方。 如果 p 是整数,则通过重复平方计算幂。 如果整数为负数,则首先反转 x。 对于 p 的其他值,计算涉及特征值和特征向量,例如如果 [v,d] = eig(x),则 x^p = v*d.^p/v
10 .^ 数组。 a.^b 是具有元素 a(i,j)b(i,j) 次幂的矩阵。 a 和 b 必须具有相同的大小,除非其中之一是标量。
11 ' 矩阵转置。 a' 是 a 的线性代数转置。对于复矩阵,这是复共轭转置。
12 .' 数组转置。 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;

当我们运行该文件时,它会产生以下结果

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

算术运算函数

除了上述算术运算符外,matlab 还提供以下用于类似目的的命令/函数

序号 函数 描述
1 uplus(a) 一元加号; 增加量a
2 plus (a,b) 加; 返回 a b
3 uminus(a) 一元减号; 减少量a
4 minus(a, b) 减; 返回 a - b
5 times(a, b) 数组相乘; 返回 a.*b
6 mtimes(a, b) 矩阵乘法; 返回 a* b
7 rdivide(a, b) 右数组划分; 返回 a ./ b
8 ldivide(a, b) 左数组划分; 返回 a.\b
9 mrdivide(a, b) 求解线性方程组 xa = b for x
10 mldivide(a, b) 求解 x 的线性方程组 ax = b
11 power(a, b) 数组求幂; 返回 a.^b
12 mpower(a, b) 矩阵求幂; 返回 a ^ b
13 cumprod(a) 累计积; 返回与包含累积乘积的数组 a 大小相同的数组。
  • 如果 a 是向量,则 cumprod(a) 返回包含 a 的元素的累积乘积的向量。
  • 如果 a 是矩阵,则 cumprod(a) 返回包含 a 的每一列的累积乘积的矩阵。
  • 如果 a 是多维数组,则 cumprod(a) 沿第一个非单一维度运行。
14 cumprod(a, dim) 返回沿维度 dim 的累积乘积。
15 cumsum(a) 累计总和; 返回包含累积和的数组 a。
  • 如果 a 是向量,则 cumsum(a) 返回包含 a 的元素的累积和的向量。
  • 如果 a 是矩阵,则 cumsum(a) 返回包含 a 的每一列的累积和的矩阵。
  • 如果 a 是一个多维数组,则 cumsum(a) 沿第一个非单一维度运行。
16 cumsum(a, dim) 返回沿维度 dim 的元素的累积和。
17 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,:)]
18 diff(x,n) 递归应用 diff n 次,得到第 n 个差异。
19 diff(x,n,dim) 它是沿标量暗淡指定的维度计算的第 n 个差分函数。 如果 n 阶等于或超过维度 dim 的长度,则 diff 返回一个空数组。
20 prod(a) 数组元素的乘积; 返回 a 的数组元素的乘积。
  • 如果 a 是向量,则 prod(a) 返回元素的乘积。
  • 如果 a 是非空矩阵,则 prod(a) 将 a 的列视为向量并返回每列乘积的行向量。
  • 如果 a 是空的 0×0 矩阵,则 prod(a) 返回 1。
  • 如果 a 是多维数组,则 prod(a) 沿第一个非单一维度执行操作并返回一个产品数组。 此维度的大小减少到 1,而所有其他维度的大小保持不变。
  • 如果输入 a 是单一的,prod 函数将 b 计算并返回为单一的。 对于所有其他数值和逻辑数据类型,prod 计算 b 并将其作为双精度值返回。
21 prod(a,dim) 沿维度 dim 返回产品。 例如,如果 a 是矩阵,则 prod(a,2) 是包含每行乘积的列向量。
22 prod(___,datatype) 相乘并返回由数据类型指定的类中的数组。
23 sum(a) 数组元素的总和; 返回数组不同维度的总和。 如果a是浮点数,即double或single,则b是本机累加的,即与a在同一类中,b与a具有相同的类。如果a不是浮点数,则b在double中累加,b具有 类双。
  • 如果 a 是向量,则 sum(a) 返回元素的总和。
  • 如果 a 是矩阵,则 sum(a) 将 a 的列视为向量,返回每列总和的行向量。
  • 如果 a 是多维数组,则 sum(a) 将沿第一个非单一维度的值视为向量,返回行向量数组。
24 sum(a,dim) 沿标量暗淡指定的 a 的维度求和。
25 sum(..., 'double')
sum(..., dim,'double')
以双精度执行加法并返回双精度类型的答案,即使 a 的数据类型为单精度或整数数据类型。 这是整数数据类型的默认值。
26 sum(..., 'native')
sum(..., dim,'native')
在 a 的本机数据类型中执行加法并返回相同数据类型的答案。 这是单人和双人的默认设置。
27 ceil(a) 向正无穷大舍入; 将 a 的元素四舍五入为大于或等于 a 的最接近的整数。
28 fix(a) 向零舍入
29 floor(a) 向负无穷大舍入; 将 a 的元素四舍五入为小于或等于 a 的最接近的整数。
30 idivide(a, b)
idivide(a, b,'fix')
带舍入选项的整数除法; 与 a./b 相同,只是小数商向零四舍五入到最接近的整数。
31 idivide(a, b, 'round') 分数商四舍五入到最接近的整数。
32 idivide(a, b, 'floor') 分数商向负无穷大四舍五入到最接近的整数。
33 idivide(a, b, 'ceil') 小数商向无穷大四舍五入到最接近的整数。
34 mod (x,y) 除法后的模数; 返回 x - n.\*y,其中 n = floor(x./y)。 如果 y 不是整数并且商 x./y 在整数的舍入误差范围内,则 n 是该整数。 输入 x 和 y 必须是相同大小的实数数组,或实数标量(假设 y ~=0)。 请注意
  • mod(x,0) is x
  • mod(x,x) is 0
  • mod(x,y) for x=y 和 y=0 具有与 y 相同的符号
35 rem (x,y) 除法后的余数; 返回 x - n.*y,其中 n = fix(x./y)。 如果 y 不是整数并且商 x./y 在整数的舍入误差范围内,则 n 是该整数。 输入 x 和 y 必须是相同大小的实数数组,或实数标量(假设 y ~=0)。请注意
  • rem(x,0) 是 nan
  • rem(x,x) 对于 x~=0 是 0
  • x~=y 和 y~=0 的 rem(x,y) 与 x 具有相同的符号。
36 round(x) 四舍五入到最接近的整数; 将 x 的元素四舍五入为最接近的整数。 小数部分为 0.5 的正元素向上舍入到最接近的正整数。 小数部分为 -0.5 的负元素向下舍入为最接近的负整数。

查看笔记

扫码一下
查看教程更方便
网站地图