Matlab中.*與*區別

“.*”和“*”的區別:

1、在進行數之間的運算時 “ .* ” 和  “ * ”  是沒有區別的,都是表示普通的乘法運算。例:a = 2,b = 3,a.*b = 6, a*b = 6。

2、在進行矩陣之間的運算時“.*”和“*”的意義就有所不同了。假設A,B表示兩個矩陣,A*B表示矩陣A與矩陣B進行矩陣相乘,A.*B表示矩陣A中的元素與矩陣B中的元素按位置依次相乘,得到的結果將作爲新矩陣中相同位置的元素。

例如:A1 = [0 -1 0;1 0 0;0 0 -1] * [0 -1 0;1 0 0;0 0 -1];
           A2 = [0 -1 0;1 0 0;0 0 -1] .* [0 -1 0;1 0 0;0 0 -1];

A1 =     -1     0    0            
             0    -1     0
             0     0     1 

A2 =      0     1     0
             1     0     0
             0     0     1 

3、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)兩數組之間必須有相同的形,或其中一個是標量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章