精華區beta MATLAB 關於我們 聯絡資訊
這個應該是常常看到的問題吧 Matlab有極強大的矩陣運算功能 想當然爾 對於進行數學運算上都是盡可能地使用矩陣運算來進行 但是這也發生了一些問題 首先 平常我們所學的矩陣乘法 其實應該記算過程如下 A = [ a11 a12 ; a21 a22 ] B = [ b11 b12 ; b21 b22 ] 而A*B大家也知道進行的結果應該如下 A * B = [ a11*b11+a12*b21 , a11*b12+a12*b22 a21*b11+a22*b21 , a21*b12+a22*b22 ] 但是平時我們拿來進行運用的矩陣運算 確是避免使用到需花長時間計算的迴圈而使用 現在假設C為(1*30)的矩陣,D也是(1*30)的矩陣 我們一般想要拿來進行運算的確是A*B這種可以避開迴圈的運算 也就是矩陣內的元素運算 這樣當然就會出錯 輸入C*D的話 Matlab一定會說錯誤,因為矩陣維度不對嘛 C*D這樣,Matlab會把他當作是一般的矩陣運算 (1*30)*(1*30)當然是錯的 因此 得需要其他的指定才可以調整到我們要進行的元素運算而非矩陣運算 方法為在運算符號前面加上一個"." 也就是把C*D改為C .* D 這樣子Matlab就會知道你要做的是矩陣內元素運算而非矩陣運算了 同樣的還有"./"和".^"也是 所以寫程式的時候遇到這裡要格外注意喔 -- Deserves death! I daresay he does. Many that live deserve death. And some die that deserve life. Can you give that to them? Then be not too eager to deal out death in the name of justice, fearing for your own safty. Even the wise cannot see all ends. Gandalf to Frodo -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.131.231.161
PhoenixChu:這一定要推一下!!! 11/13 00:49