数组运算和矩阵运算
数组运算和矩阵运算MATLAB在数组运算中提供了两种不同类型的运算,一种是数组运算(array operations),一种是矩阵运算(matrix).数组运算是
一种用于元素对元素的运算.也就是说,这个运算是针对两数组相对应的元素使用的. 注意两数组的行与列必须相同.否则,MATLAB
将产生错误.
数组运算可以用于数组与标量的运算.当一个数组和一个标量进行运算时,标量将会和数组中的每一元素进行运算.则相对地,
矩阵运算则遵守线性代数的一般规则,像矩阵的乘法.在线性代数中,c=a×b的定义如下:
表2.5 两标量间的数学运算符
运算符 代数形式 MATLAB形式
加号 A+B A+B
减号 A­B A­B
乘号 A×B A*B
除号 file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif A/B
指数 file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif A^B
注意,在矩阵相乘中,a阵的列数必须等于b阵的行数。
MATLAB用一个特殊的符号来区分矩阵运算和数组运算。在需要区分两者不同的时侯,把点置于符号前来指示这是一个数组运算(例如,.*)。表2。6给出的是一些常见的数组和矩阵运算。
表2.6常见的数组和矩阵运算
运算 MATLAB形式 注释
数组加法 A+B 数组加法和矩阵加法相同
数组减法 A­B 数组减法和矩阵减法相同
数组乘法 A.*B A和B的元素逐个对应相乘.两数组之间必须有相同的形,或其中一个是标量.
矩阵乘法 A*B A和B的矩阵乘法.A的列数必须和B的行数相同.
数组右除法 A./B A和B的元素逐个对应相除: A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量.
数组左除法 A.\B A和B的元素逐个对应相除: B(i,j)/A(i,j)两数组之间必须有相同的形,或其中一个是标量.
矩阵右除法 A/B 矩阵除法,等价于A*inv(B), inv(B)是B的逆阵
矩阵左除法 A\B 矩阵除法,等价于inv(B)*A, inv(A)是A的逆阵
数组指数运算 A.^B AB中的元素逐个进行如下运算A(i,j)^B(i,j), A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量.
初学者往往混淆数组运算和矩阵运算.在一些情况下,两者相互替换会导致非法操作, MATLAB将会报告产生了错误。在另一些情况下,两种运算都是合法的,那么这时MATLAB进行错误的运算,并产生错误的结果。当我们进行方阵运算时,极易产生这样的错误。两个方阵具有相同的大小,两者之间的数组运算和矩阵运算都是合法的,但产生的结果完全不同。在这种情况下,你要万分的小心。
常见编程错误
在你的MATLAB代码中,仔细区分数组运算和矩阵运算。数组乘法和矩阵乘法极易混淆。
因为左除运算A\B等价于inv(A)*B,所以左除运算是解线性方程的好方法。
哎,对不住大家,又是排版问题,附上表2-5!
排版时,Mathtype的公式不好处理!
页:
[1]