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

看板MATLAB作者 (未來加油)時間11年前 (2013/04/05 15:36), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/2 (看更多)
新手遇到一些瓶頸,請求高手指點 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 ※ 編輯: liuzijan 來自: 108.74.163.35 (04/05 15:40)

04/05 21:28, , 1F
看你描述 A1 ~ Am 是一樣的?
04/05 21:28, 1F

04/05 21:39, , 2F
2. 可以爬文 eval 這個算是常見的問題了
04/05 21:39, 2F

04/05 21:43, , 3F
3. 要造出 A 可以用 blkdiag 指令
04/05 21:43, 3F

04/05 22:55, , 4F
這不是diagonal matrix嗎?請用diag
04/05 22:55, 4F

04/05 23:08, , 5F
產生你想要的index-value pair 用sparse(...)
04/05 23:08, 5F
文章代碼(AID): #1HNdyPGH (MATLAB)
文章代碼(AID): #1HNdyPGH (MATLAB)