2010-11-29 11 views
4

私は2つのMATLABベクトルを持っています。最初はNの要素を持ち、もう1つはk*Nです。私はkが何であるか知っていて、最初のベクトルの各要素が次のベクトルの対応するk要素の前に現れるようにリストをスプライスしたいと思います。たとえば:スプライスMATLABベクトル

k = 3 
x = [1 5 9] 
y = [2 3 4 6 7 8 10 11 12] 

は次のように見えるように組み合わせることが必要です。

z = [1 2 3 4 5 6 7 8 9 10 11 12] 

はすぐにこれを行う簡単な方法はありますか?私のxとyはかなり大きいです。ありがとう!

答えて

7

あなたは

k = 3 
x = [1 5 9] 
y = [2 3 4 6 7 8 10 11 12] 

%# make a k-by-n array 
z = reshape(y,k,[]); 

%# catenate with x 
z = [x;z]; 

%# reorder 
z = z(:)' 
+0

1を再形成するいくつか経由してこれを行うことができます。巧妙な解決策。 –