我认为它应该很容易,但我不知道如何在循环中附加一个矢量。
例如:
a = [1 2 3]
我想:
b = [1 2 3 1 2 3 1 2 3]
那么,必须有一个空数组,我通过循环将a向量追加3次?
答案 0 :(得分:2)
答案是使用内置函数repmat
a = [1 2 3]
% Repeat 1x in the rows dimension, 3x in the columns dimension
b = repmat( a, 1, 3 );
% >> b = [1 2 3 1 2 3 1 2 3]
答案 1 :(得分:1)
要附加两个向量,请使用[a, b]
表示法。
以你的例子:
a = [1 2 3];
b = [];
for i=1:3
b = [b, a];
end
编辑以响应有关内存分配时间的评论:
考虑在循环之前预先分配整个数组。
a = [1 2 3];
b= zeros(1, size(a,2)*3);
s_a = size(a,2);
for i=1:3
b(((i-1)*s_a + 1):i*s_a) = a;
end