3

开始A = [3;4;5],我想复制六次来得到A =[3;3;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5]

我可以想到一些蛮力的方法来做到这一点,但要寻找优化的东西,因为这将多次循环运行。

4

3 回答 3

4

怎么用kron?它非常适合这个目的。

kron(A,ones(6,1))
于 2013-11-10T17:42:35.370 回答
1

还有另一种可能性,不涉及算术运算:

reshape(repmat(A,1,6).',[],1);

但是,如果您真的需要speed,并且如果A循环的所有迭代中的向量大小都相同,那么最好预先计算(在循环外)这样的索引向量

ind = reshape(repmat([1;2;3],1,6).',[],1);

然后在循环内你只需要做

A(ind)
于 2013-11-10T19:18:14.873 回答
0
A = [3;4;5];
duplicate_factor = 6;
A = reshape((A*(ones(duplicate_factor,1))')', [], 1)
于 2013-11-10T17:35:00.853 回答