2017-07-21 18 views
-1

バッファ内のサンプルで読み取ったwav信号があります。私は、 の新しいバッファx 10の位置、20、30..110の位置にあるサンプルを保存します。 どうすればいいですか?私はforループを書く必要がありますが、どのようにしてcontatorを書くことができますか?Matlab:反復ループ

答えて

1

バッファで何を意味するのかよく分かりませんが、配列からその情報を取得する方法はここにあります。 bは、私が10であるサンプルxの新しいバッファに保存したい10 20 30 40 50 60 70 80 90 100

0

に等しく、今

b = s(10:10:end); 

s = 1:107を考えると、次のコマンドを発行して位置10から始まる要素を得ることができます位置、20、30..110位置。これどうやってするの?

x = s(10:10:110); 

これはあまりにも動作します:あなたが国家として、あなたのバッファ秒からだけではなく、110までの10番目ごとのサンプルをしたい場合は

x = s(10*(1:11)); 

Houstanbのソリューションが最適です。

私はforループを書く必要がありますが、どのようにしてcontatorを書くことができますか?

、あなたはこれを試すことができますループのためにあなたが必見書き込みAの場合:

x = nan(1,11); 
for k=1:11 
    x(k) = s(k*10); 
end 

しかし、これはベクトル化が好まれるMATLABの観点から、最適なソリューションではありません。