Show 例子
MATLAB允许两种不同类型的算术运算 -矩阵算术运算
数组算术运算
矩阵算术运算与线性代数中定义的相同。 数组操作在一维和多维数组上逐个元素地执行。
矩阵运算符和数组运算符由句点(。)符号区分。 但是,由于矩阵和数组的加法和减法操作相同,因此两种情况下的运算符相同。
下表给出了运算符的简要说明 -Sr.No.操作符和说明
1+
加或一元加。 A + B添加存储在变量A和B中的值.A和B必须具有相同的大小,除非一个是标量。 标量可以添加到任何大小的矩阵中。
2-
减法或一元减号。 AB从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是幂p的X. 如果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的数组转置。对于复数矩阵,这不涉及共轭。
例子 (Example)
以下示例显示了算术运算符在标量数据上的使用。 使用以下代码创建脚本文件 -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.50000
g = 2
z = 343
算术运算的函数
除上述算术运算符外,MATLAB还提供以下用于类似目的的命令/函数 -Sr.No.功能说明
1uplus(a)
一元加; 增加数量a
2plus (a,b)
加; 返回a + b
3uminus(a)
一元减去; 减去金额a
4minus(a, b)
减去; 返回a - b
5times(a, b)
数组乘法; 返回a。* b
6mtimes(a, b)
矩阵乘法; 返回a * b
7rdivide(a, b)
右阵列划分; 返回./ b
8ldivide(a, b)
左阵列划分; 返回一个。\ b
9mrdivide(A, B)
求解x的线性方程组xA = B
10mldivide(A, B)
求解x的线性方程组Ax = B
11power(a, b)
阵列功率; 返回一个。^ b
12mpower(a, b)
矩阵功率; 返回a ^ b
13cumprod(A)
累积产品; 返回与包含累积产品的数组A大小相同的数组。如果A是向量,则cumprod(A)返回包含A元素的累积乘积的向量。
如果A是矩阵,则cumprod(A)返回一个矩阵,其中包含A的每列的累积乘积。
如果A是多维数组,则cumprod(A)沿第一个非单一维度行动。
14cumprod(A, dim)
返回维度dim的累积产品。
15cumsum(A)
累计金额; 返回包含累积和的数组A.如果A是向量,则cumsum(A)返回包含A元素累积和的向量。
如果A是矩阵,则cumsum(A)返回一个矩阵,其中包含A的每列的累积和。
如果A是多维数组,则cumsum(A)沿第一个非单体维度行动。
16cumsum(A, dim)
返回维度dim元素的累积和。
17diff(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,:)]
18diff(X,n)
递归地应用diff n次,产生第n个差异。
19diff(X,n,dim)
它是沿标量暗指定的维度计算的第n个差异函数。 如果order n等于或超过维度dim的长度,则diff返回一个空数组。
20prod(A)
阵列元素的产品; 返回A的数组元素的乘积。如果A是向量,则prod(A)返回元素的乘积。
如果A是非空矩阵,则prod(A)将A的列视为向量,并返回每列产品的行向量。
如果A是空的0乘0矩阵,则prod(A)返回1。
如果A是多维数组,那么prod(A)沿第一个非单例维度行动并返回一个产品数组。 此尺寸的尺寸减小到1,而所有其他尺寸的尺寸保持不变。
如果输入A是单个,则prod函数计算并返回B为单。 对于所有其他数字和逻辑数据类型,prod计算并将B返回为double。
21prod(A,dim)
返回维度dim的产品。 例如,如果A是矩阵,则prod(A,2)是包含每行的乘积的列向量。
22prod(___,datatype)
乘以并返回由datatype指定的类中的数组。
23sum(A) 数组元素的总和; 返回沿数组的不同维度的总和。 如果A是浮点,即双精度或单精度,则B本身累加,与A在同一类中,且B与A具有相同的类。如果A不是浮点数,则B累加为双精度,B具有class双。
如果A是向量,则sum(A)返回元素的总和。
如果A是矩阵,则sum(A)将A的列视为向量,返回每列总和的行向量。
如果A是多维数组,sum(A)将沿第一个非单一维度的值视为向量,返回行向量数组。
24sum(A,dim)
沿着标量dim指定的A维的dim 。
25sum(..., 'double')
sum(..., dim,'double')
以双精度执行添加并返回double类型的答案,即使A具有单数据类型或整数数据类型。 这是整数数据类型的默认值。
26sum(..., 'native')
sum(..., dim,'native')
在A的本机数据类型中执行添加,并返回相同数据类型的答案。 这是single和double的默认值。
27ceil(A)
向正无穷大方向前进; 将A的元素舍入到最接近的大于或等于A的整数。
28fix(A)
向零回合
29floor(A)
向负无穷大方向转; 将A的元素舍入到最接近的小于或等于A的整数。
30idivide(a, b)
idivide(a, b,'fix')
具有舍入选项的整数除法; 与a./b相同,除了小数商向零舍入到最接近的整数。
31idivide(a, b, 'round')
小数商舍入到最接近的整数。
32idivide(A, B, 'floor')
分数商向负无穷大舍入到最接近的整数。
33idivide(A, B, 'ceil')
分数商向无穷大舍入到最接近的整数。
34mod (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
X~ = Y和Y~ = 0的mod(X,Y)与Y具有相同的符号
35rem (X,Y)
分裂后剩余; 返回X - n。* Y其中n = fix(X./Y)。 如果Y不是整数且商X./Y在整数的舍入误差范围内,那么n就是整数。 输入X和Y必须是相同大小的实数数组,或实数标量(提供Y~ = 0)。
请注意 -rem(X,0) is NaN
对于X~ = 0,rem(X,X)是0
对于X~ = Y和Y~ = 0,rem(X,Y)具有与X相同的符号。
36round(X)
舍入到最接近的整数; 将X的元素舍入到最接近的整数。 小数部分为0.5的正元素向上舍入到最接近的正整数。 具有-0.5的小数部分的负元素向下舍入到最接近的负整数。