から始めてA = [3;4;5]
、6回複製して を取得したいと思いますA =[3;3;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5]
。
私はそれを行うためのいくつかの強引な方法を考えることができますが、これは何度もループを実行するため、最適化されたものを探しています.
から始めてA = [3;4;5]
、6回複製して を取得したいと思いますA =[3;3;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5]
。
私はそれを行うためのいくつかの強引な方法を考えることができますが、これは何度もループを実行するため、最適化されたものを探しています.
算術演算を含まないさらに別の可能性:
reshape(repmat(A,1,6).',[],1);
ただし、本当に速度が必要で、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)