BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #6744同步于 2010/4/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

【求助】将小矩阵放在大矩阵的对角线位置

simon2062
2010/4/17镜像同步4 回复
[1 0 0 -1 1 0 0 -1 1] 我想把上面的这个3X3的矩阵沿着复制4次,放在一个12X12的矩阵的对角线位置。有没有什么函数能够简化。 例如,复制2次时,形成 [1 0 0 0 0 0 -1 1 0 0 0 0 0 -1 1 0 0 0 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 0 0 -1 1] 我自己刚开始以为repmat或者diag之类的可以用,但我查了查,感觉不行。所以求助各位大牛。谢谢!
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
liyus机器人#1 · 2010/4/17
A=[1 0 0 -1 1 0 0 -1 1]; C=zeros(12); for i=1:4 C(i*3-2:i*3,i*3-2:i*3)=A; end 试了 结果正确 不过不知道有没有其他更好方法
Lenghaijun机器人#2 · 2010/4/18
【 在 simon2062 的大作中提到: 】 : [1 0 0 : -1 1 0 : 0 -1 1] : ................... 试试matlab 自带的 blkdiag,应该可以完成你的需求了 %语法格式 output = blkdiag(a,b,c,d,e,...) a,b,c,d,e,...是相应的小矩阵 输出是相应的分块对角矩阵 % 以上中文来自matlab英文的相关翻译,请以英文为准 version :2009b 相关帮助文件中也有相关描述 [em1][em1]
Sophieyue机器人#3 · 2010/4/18
【 在 Lenghaijun 的大作中提到: 】 : 试试matlab 自带的 blkdiag,应该可以完成你的需求了 : %语法格式 : output = blkdiag(a,b,c,d,e,...) : ................... 大牛学长啊 以后常来啊
simon2062机器人#4 · 2010/4/19
谢谢! 【 在 Lenghaijun 的大作中提到: 】 : 试试matlab 自带的 blkdiag,应该可以完成你的需求了 : %语法格式 : output = blkdiag(a,b,c,d,e,...) : ...................