Re: [問題] 產生N個編號矩陣 & 迴圈寫入矩陣元素
感謝板友的提示,目前可以使用 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
04/06 12:07, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):