从A = [3;4;5]
开始,我想将其复制六次以获得A =[3;3;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5]
。
我可以想到一些蛮力的方法来做到这一点,但寻找优化的东西,因为这将多次运行循环。
答案 0 :(得分:4)
如何使用kron
?它非常适合这个目的。
kron(A,ones(6,1))
答案 1 :(得分:1)
又一种可能性,它不涉及算术运算:
reshape(repmat(A,1,6).',[],1);
但是,如果你确实需要 speed ,并且如果A
向量大小在循环的所有迭代中都相同,那么最好预计算(在循环之外)像这样的索引向量
ind = reshape(repmat([1;2;3],1,6).',[],1);
然后在循环内你只需要做
A(ind)
答案 2 :(得分:0)
A = [3;4;5];
duplicate_factor = 6;
A = reshape((A*(ones(duplicate_factor,1))')', [], 1)