Re: [問題] 產生N個編號矩陣 & 迴圈寫入矩陣元素

看板MATLAB作者 (未來加油)時間11年前 (2013/04/06 11:34), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
感謝板友的提示,目前可以使用 eval 和 num2str 語法, 產生 A1, A2,... Am 矩陣,並將矩陣元素寫入這些矩陣中。 但目前又遇到另一個問題: 要如何將 A1, A2,... Am 放入大矩陣的對角線 or 垂直排列? 也就是要執行 A=blkdiag(A1, A2,... Am) 或 A=[A1; A2;... Am] 時, 當 m 數值很大,Ai矩陣數目很多,難以逐一輸入,要如何執行此步驟? 再次感謝! ※ 引述《liuzijan (未來加油)》之銘言: : 新手遇到一些瓶頸,請求高手指點 orz : 我想要在 Matlab 中寫入這樣的矩陣: : A為 mn x mn 矩陣: : A1 0 ... 0 : 0 A2 ... 0 : A = . . . . : . . . . : . . . . : 0 0 ... Am : 其中 Ai (i=1:1:m) 為 n x n 矩陣 : 而 Ai內的元素: : 如果 i=j=1 時, 則 Ai(i,j)=1/a+1/R(i,1)+1/b ps. R(i,1)為另一矩陣中的元素 : 如果 i=j=2:1:n 時, 則 Ai(i,j)=1/R(i,1)+2/b : 如果 i=j+1 或 i=j-1 時, 則 Ai(i,j)=-1/b : 如果 i=j=n 時, Ai(n,n)=1/c+1/R(i,1)+1/b : 其它元素則為 0 : 問題: : 1. 如何產生 m 個 Ai 矩陣, 並將這些矩陣編號為 A1, A2,... Am : 2. 如何以迴圈方式將 Ai 內的元素寫入? : 例如,寫 Ai 中其中一個元素時,我目前只會這種寫法: : for i=1:1:m : for j=1:1:n : if abs(i-j)==1 : A1(i,j)=-1./b; : A2(i,j)=-1./b; : A3(i,j)=-1./b; : A4(i,j)=-1./b; : . : . : end : end : end : 其中 A1, A2,... Am 要如何跑回圈呢? : 感謝各位! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 108.74.163.35

04/06 12:07, , 1F
sparse can help you.
04/06 12:07, 1F
文章代碼(AID): #1HNvVUfh (MATLAB)
文章代碼(AID): #1HNvVUfh (MATLAB)