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