1. 程式人生 > >乘法“*”和點乘“.*”&除法“/”和點除“./”區別

乘法“*”和點乘“.*”&除法“/”和點除“./”區別

reference:https://blog.csdn.net/xiaotao_1/article/details/79026406

一,*.*的聯絡和區別。 
  1,在進行數值執行和數值乘矩陣,這兩種沒有區別,例如:a*b=a.*b; a*B=a.*B; B*a=B.*a (其中小寫字母表示數值,大寫字母表示矩陣,下同)。 
  2,在處理矩陣乘矩陣時,*表示普通的矩陣乘法,要求前面矩陣的列數等於後面矩陣的行數;.*表示兩個矩陣對應元素相乘,要求兩個矩陣行數列數都相等。例如:

>> [1,2,3]*[1,2;3,4;5,6]       % 矩陣乘法
ans =
    22    28
>> [1,2,3].*[4,5,6]            % 矩陣點乘
ans =
     4    10    18

  

二,/./的聯絡和區別。 
  1,數值執行時,這兩種沒有區別,例如:a/b=a./b 
  2,數值與矩陣執行時,要分數值在前還是在後。 
    (1),數值在前,只能用./ 
    (2),數值在後,這兩種一樣:A/b=A./b 
  3,矩陣除矩陣,A/B可粗略地看作A*inv(B)(強烈不建議進行求逆運算);A./B表示A矩陣與B矩陣對應元素相除,所以要求A,B行數列數相等。例如:

>> [4,5]/[1,2;3,4]                    % 矩陣除法
ans =
   -0.5000    1.5000
>> [4,5,6]./[1,2,3]                   % 矩陣點除
ans =
    4.0000    2.5000    2.0000