返回信息流[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之类的可以用,但我查了查,感觉不行。所以求助各位大牛。谢谢!
这是一条镜像帖。来源:北邮人论坛 / matlab / #6744同步于 2010/4/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
【求助】将小矩阵放在大矩阵的对角线位置
simon2062
2010/4/17镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
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
试了 结果正确 不过不知道有没有其他更好方法
【 在 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]
【 在 Lenghaijun 的大作中提到: 】
: 试试matlab 自带的 blkdiag,应该可以完成你的需求了
: %语法格式
: output = blkdiag(a,b,c,d,e,...)
: ...................
大牛学长啊 以后常来啊
谢谢!
【 在 Lenghaijun 的大作中提到: 】
: 试试matlab 自带的 blkdiag,应该可以完成你的需求了
: %语法格式
: output = blkdiag(a,b,c,d,e,...)
: ...................