嘿,我想做一些类似以下的事情
A = [...
1 2 3
4 5 6
7 8 9]至
B = [...
1 2 3
1 2 3
1 2 3
4 5 6
4 5 6
4 5 6
7 8 9
7 8 9
7 8 9]但请不要建议手动操作的东西。我正在写一个算法,输入和矩阵的维数可能会改变。
发布于 2013-07-08 17:01:40
有几种方法。我认为最简单的方法是使用Kronecker product:
B = kron(A, ones(3,1))更快但可读性较差的解决方案是通过乘法和重塑进行复制:
B = reshape((A(:) * ones(1,3))', 3*size(A,1),size(A,2))或者相同的解决方案,但是使用repmat
B = reshape(repmat(A(:).',3,1), 3*size(A,1),size(A,2))发布于 2013-07-08 17:24:20
您也可以基于以下内容进行尝试:
a = [1 2 3]
b = [4 5 6]
c = [7 8 9]
d = [ a; a; b; b; c; c]
e = [ repmat([a], [2, 1]) ;
repmat([b], [2, 1]) ;
repmat([c], [2, 1]) ] d和e的结果矩阵如下:
=
1 2 3
1 2 3
4 5 6
4 5 6
7 8 9
7 8 9要追加更多行,您还可以使用此for循环,并查看结果:
e = []
for i = 1:2
e = [ e;
repmat([a], [2, 1]) ;
repmat([b], [2, 1]) ;
repmat([c], [2, 1]) ]
endhttps://stackoverflow.com/questions/17522568
复制相似问题