2016-05-10 4 views
0

インターリーバへのベクター:我々はベクトルX= randi(1,N)があると私は2つの新しいベクトルX1Xの最初の要素が最初になるようX2Xの内容を分割したいですX1の最初の要素であり、X2の最初の要素はXの2番目の要素であり、Xの3番目の要素はX1の2番目の要素であり、Xの4番目の要素はX2 ...の最後の要素までの2番目の要素です。 `X。インタリーブおよびデインタリーブ二つの新しいベクトル(MATLAB)

私は、次のアイデアを持っている

X1(1)=X(1); 
X2(1)=X(2); 


for i=1:length(X) 
X1(i)= X(i+2); 
end 
for j=2:length (X) 
X2(i)= X(i+2) 
end 

私の質問は:私の方法が正しいのですか?それを行うための良い方法はありますか?基本的にこのケースでは、私はX1X2を持っているとどのように私は効率的Xを回復する、Xを回復したいと思いますので、

デインターリーバ は、私はまた、逆に問題がありますか?

おかげ

+1

'X1 = X(1:2:エンド)' 'X2 = X(2:2:エンド) '最後の反復で存在しない' X(length(X)+2) 'を求めているので、あなたのメソッドはうまくいかない。 – David

+0

ありがとうございます。基本的に他の方法はありませんか? – Henry

+0

多くの方法がありますが、あなたが修正されればあなたの作品はうまくいくでしょう。 – David

答えて

0

私はこれよりクリーンな解決策を得るのは難しいと思う:

x = 1:20 
x1 = x(1:2:end) 
x2 = x(2:2:end) 
関連する問題