Matlab语法问题:
给定一些nxd矩阵A(比如[1 2 3; 4 5 6])和数字k(比如说2),如何创建一个A矩阵出现k次的块矩阵([1 2 3 0 0 0 ; 4 5 6 0 0 0; 0 0 0 1 2 3; 0 0 0 4 5 6]在我的例子中)?
另一个例子,如果A是[1 2 3; 4 5 6]和k = 3然后输出应为:
[ 1 2 3 0 0 0 0 0 0;
4 5 6 0 0 0 0 0 0;
0 0 0 1 2 3 0 0 0;
0 0 0 4 5 6 0 0 0;
0 0 0 0 0 0 1 2 3;
0 0 0 0 0 0 4 5 6
]
答案 0 :(得分:1)
它很容易退出,只需制作一个循环并播放矩阵O
的大小:
A =[ 1 2 3; 4 5 6] O = zeros(size(A)) B = [A O; O A] B =[ 1 2 3 0 0 0; 4 5 6 0 0 0; 0 0 0 1 2 3; 0 0 0 4 5 6]
我希望你能找到这个。
clc A =[ 1 2 3; 4 5 6] O = zeros(size(A)) B = []; K = 3; line = []; for (i=1:K) line = []; for (j=1:K) if (j==i) line = [line A] else line =[line O] end end B = [B; line]; end