3

から始めてA = [3;4;5]、6回複製して を取得したいと思いますA =[3;3;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5]

私はそれを行うためのいくつかの強引な方法を考えることができますが、これは何度もループを実行するため、最適化されたものを探しています.

4

3 に答える 3

1

算術演算を含まないさらに別の可能性:

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

ただし、本当に速度が必要で、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 に答える