在進行矩陣之間的運算時,「.*」和「*」的意義是不同的:「*」為矩陣乘法,兩個矩陣必須滿足左邊矩陣的列數等於右邊矩陣的行數;「.*」為點乘運算,是指兩個矩陣中對應元素進行乘法運算。
本文操作環境:windows7系統、Dell G3電腦、matlab R2020a版。
.*」與「*」的差異:
在進行數之間的運算時「.*
」和「*
」是沒有區別的,都是表示普通的乘法運算。例:m = 2,n = 3,m.*n = 6 , m*n = 6。
在進行矩陣之間的運算時「.*
」和「*
」的意義就有所不同了。假設a,b表示兩個矩陣,a*b表示矩陣a與矩陣b進行矩陣相乘,a.*b表示矩陣a中的元素與矩陣b中的元素按位置依次相乘,得到的結果將作為新矩陣中相同位置的元素。
*
為矩陣乘法,若A為m*n維矩陣,B為n*p維矩陣,則A*B為m*p維矩陣
.*
為點乘運算,是指兩個矩陣中對應元素進行乘法運算。要求兩個矩陣維數相同
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)兩個數組之間必定有相同的形,或其中一個是標量。
想要查閱更多相關文章,請造訪PHP中文網! !
以上是matlab中.*和*的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!