2

関数 "wavread()" を使用して .wav ファイルをメモリにロードし、信号を列ベクトル y に格納すると、行ベクトル yRow(=y') が得られます。

次に、行列 myframe=zeros(frameNum,frameLen); を定義します。

私がやりたいことは、yRow の項目で myframe を埋めることです:

index=1;
myframe(1,:)=yRow(index:index+frameLen-1)

for i=2:frameNum-1
   myframe(i,:)=yRow(index*frameStep:index*frameStep+frameLen-1)
   index=index+1
end

myframe(frameNum,1:sigLen-frameNum*frameStep+1)=yRow(frameNum*frameStep:sigLen)

しかし、「myframe」を埋めるのに非常に時間がかかります。何か問題があるに違いないと思います。問題を見つけるのを手伝ってください。ありがとう。

4

2 に答える 2

0

各文の最後にセミコロンを追加すると、コマンド ウィンドウでの情報の出力を停止できます。プログラムはバックエンドですばやく実行できます。だから、これは「;」の問題です。

于 2012-07-19T13:28:38.970 に答える
0

matlab でreshape関数を次のように使用します。

myframe=reshape(y,frameNum,frameLen);
于 2012-07-19T03:49:33.223 に答える