MATLAB学习笔记(2)矩阵运算


本文为学习笔记,加油!!!


加法减法:
(1)如果矩阵A和B具有相同的维数,那么就可以定义两个矩阵的和A+B和两个矩阵的差A-B。
(2)在MATLAB中,一个m×n矩阵A和一个标量,即一个1×1矩阵,也可以进行加减运算,结果维数与A相同,元素进行加减。

乘法:
(1)如果矩阵A的列数等于矩阵B的行数,那么矩阵相乘,即C = A B,就被定义为二维矩阵。如果 不是这种情况,M AT L A B就返回一个错误信息。
(2)例外就是这两个矩阵之一是1×1,如一 个标量,那么是可以运算的。
(3)在MATLAB中,乘法的运算符是*,因此,命令是C = A*B。

dot(x, y) % 得到向量x和y的点积
dot(A, B) % 得到一个长度为n的行向量,这里的元素是A和B对应列的点积。矩阵A和B必须是具有相同的维数m×n。
dot(A, B, dim) % 在dim数组中给出A和B的点积。

cross(x, y) % 得到向量x和y的叉积。
cross(A, B) % 得到一个3×n矩阵,其中的列是A和B对应列的叉积。矩阵A和B必须具有相同的维数3×n。
cross(A, B, dim) % 在dim数组中给出向量A和B的叉积。A和B必须具有相同的维数,size(A, dim)size(B, dim)必须是3

矩阵卷积:

conv2(A, B) % 返回矩阵A和B的二维卷积。
convn(A, B) % 返回矩阵A和B的多维卷积。

张量积:

kron(A, B) % 得到A和B的Kronecker张量积。

除法:
(1)在MATLAB中,有两个矩阵除法的符号,左除\和右除/。
(2)如果A是一个非奇异方阵,那么A \ B和B / A对应A的逆与B的左乘和右乘,即分别等价于命令 inv(A)B和Binv(A)。

转置和共轭:
(1)转置和共轭转置,它在MATLAB中用撇´表示。
(2)如果A是一个实数,那么它被转置时,第1行变成第1列,第2行变成第2列,依此类推,一个m×n矩阵变为一个n×m矩阵。
(3)如果矩阵A的元素时复数,那么所有元素都是共轭的。如果仅希望转置,在撇号之前输入一点 .´ ,A.´表示转置,其结果与 conj(A´)相同。
(4)果A是实数,那么A´与A.´相同。

元素操作运算符:
(1)算术运算也可以元素与元素逐次进行。矩阵的维数要相同,可以是多维的。如果运算是由一点进行的,那么这个运算实行的是元素方式。
(2)对于加法和减法,数组运算和矩阵运算没有差别。

+ - .* ./ .\ .^

元素操作函数:
(1)在MATLAB中预定义的数学标准函数是基于矩阵对元素的运算。

关系运算符:

< <= > >= == ~=

(1)关系运算符比较对应的元素,产生一个仅包含1和0的具有相同维数的矩阵。其元素是:1,比较结果是真;0,比较结果是假。

逻辑运算符:

& %| %~ % 非
xor % 异或

(1)逻辑运算符的运算优先级最低。在一个表达式中,关系运算符和算术运算符的运算级别要高于逻辑运算符。
(2)xor和or之间的差别在于:表达式中至少有一个是真,那么or是真。xor是表达式中有一个是真,但不能两者均为真时才为真。
(3)逻辑运算符是按元素比较的。零元素表示逻辑值假,任何其他值的元素表示逻辑 值真。

A & B % 返回一个与A和B相同维数的矩阵。在这个矩阵中,A和B对应元素都为非零时,则对应项为1;有一个为零的项则为0。
A | B % 返回一个与A和B相同维数的矩阵。在这个矩阵中,A和B对应元素只要有一个为非零,则对应项为1;两个矩阵均为零时,则为0。
˜ A % 返回一个与A和B相同维数的矩阵。在这个矩阵中,A是零时,则对应项为1;A是非零时,则对应项为0xor(A, B) % 返回一个与A和B相同维数的矩阵。在这个矩阵中,如果 A和B均为零或均为非零时,则对应项为0;如果A或B是非零但不是两者同时为非零时,则对应项为1

逻辑函数:

find(x) % 返回一个x向量中包含非零元素的下标的向量。如果所有的元素都是零,那么返回一个空矩阵,即[ ]find(A) % 返回一个长的列向量,表示矩阵A中包含非零元素的下标向量。
[u, v] = find(A) % 返回向量u和v,它们包含A中的非零元素的下标,即A中元素(uk, vk)为非零。
[u, v, b] = find(A) % 返回包含A中非零元素的下标向量u和v以及一个包含对应非零元素的向量。A中元素(uk, vk)为非零并且能在bk中找到。

any(x) % 如果向量x中的有一个元素为非零值,那么返回1;否则,返回0any(A) % 对矩阵A进行列运算,根据相应列是否包含非零元素,返回一个带10的行向量。
all(x) % 如果所有的元素都是非零值,返回1;否则,返回0all(A) % 对矩阵A进行列操作,根据相应列是否所有元素都为非零值,返回带10的一个行向量。

isnan(A) % 返回一个维数与A相同的矩阵,在这个矩阵中,对应A中有 ‘NaN’处为1,其他地方为0isinf(A) % 返回一个维数与A相同的矩阵,在这个矩阵中,对应A中有 ‘inf’处为1,其他地方为0isempty(A) % 如果A是一个空矩阵,返回1;否则返回0isequal(A, B) % 如果A和B是相同的,即有相同的维数和相同的内容,则返回1isreal(A) % 如果A是一个不带虚部的实矩阵,则返回1;否则,返回零。
isfinite(A) % 返回一个与A维数相同的矩阵。在这个矩阵中,A中元素是有限的,则对应元素为1;否则,为零。

你可能感兴趣的:(Matlab)