[運算] 迴圈改寫及反矩陣

看板MATLAB作者時間9年前 (2015/10/09 22:28), 9年前編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/2 (看更多)
最近剛接觸matlab, 有兩個問題不知如何解決 1. 若要計算A的反矩陣乘以B, inv(A)*B 與 A\B 有何差異? 2. 另一個關於迴圈, 程式某段落長這樣, 其中 Ht 為 (M*t X M) 的矩陣 stemp6 = zeros(M,1); stemp5 = []; stemp7 = []; for i = 1:t stemp8 = Ht((i-1)*M+1:i*M,:); stemp7a = []; ic = 1; for j = 1:M stemp7a = [stemp7a ; stemp8(j,1:ic)']; ic = ic+1; stemp6(j,1) = sqrt(Ht((i-1)*M+j,j)); end stemp5 = [stemp5 ; stemp6']; stemp7 = [stemp7 ; stemp7a']; end 這種寫法會讓矩陣維度不斷改變, 想請問該如何改寫才有效率呢? 先前沒寫過什麼程式, 還麻煩大家指點Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.228.9.136 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1444400885.A.35C.html

10/09 23:10, , 1F
1. A\B比較有效率
10/09 23:10, 1F
感謝, 我全部修正後試試看

10/09 23:12, , 2F
2. sample6只是特定位置的sqrt感覺可以一次寫完
10/09 23:12, 2F

10/09 23:13, , 3F
直接可以把sample5寫出來
10/09 23:13, 3F

10/09 23:13, , 4F
sample7a看不懂,j每個都大於1啊,為啥要用if
10/09 23:13, 4F
真的有冗到 我修正一下 ※ 編輯: ericrobin (61.228.9.136), 10/09/2015 23:21:49
文章代碼(AID): #1M5yxrDS (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1M5yxrDS (MATLAB)