為什麼這篇matlab矩陣運算鄉民發文收入到精華區:因為在matlab矩陣運算這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Gwaewluin (神無月 孝臣)看板MATLAB標題關於矩陣運算運算時間Sat Nov 12...
這個應該是常常看到的問題吧
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