作者liuzijan (未来加油)
看板MATLAB
标题[问题] 产生N个编号矩阵 & 回圈写入矩阵元素
时间Fri Apr 5 15:36:55 2013
新手遇到一些瓶颈,请求高手指点 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)
1F:→ math99:看你描述 A1 ~ Am 是一样的? 04/05 21:28
2F:→ math99:2. 可以爬文 eval 这个算是常见的问题了 04/05 21:39
3F:→ math99:3. 要造出 A 可以用 blkdiag 指令 04/05 21:43
4F:推 sunev:这不是diagonal matrix吗?请用diag 04/05 22:55
5F:→ u941716:产生你想要的index-value pair 用sparse(...) 04/05 23:08