2017-04-25 5 views
0

私は最初にフォルダからファイルを読み込んだ後、それらを個別に超過しようとしました。コードは以下のようになります。struct element manipulation(matlab)

pathname = uigetdir(pwd, 'Select a folder'); 
training_Sample= dir(fullfile(pathname, '*.wav')); 
n_trainingSamples=length(training_Sample); 

for i=1:n_trainingSamples 
    [signal fs]=wavread(training_Sample(i,1).name); 
    figure(i); 
plot(signal);  

end 

Erroroメッセージは次のとおりです。wavread(ライン67) 無効なWAVEファイルを使用して エラー。理由:ファイルを開くことができません。

folder_(line 22)のエラー [signal fs] = wavread(training_Sample(i、1).name);

+0

エラーメッセージはあなたが知る必要があるすべてを語っている - wavreadへの入力をチェック - >すなわち ' training_Sample(i、1).name' – matlabgui

答えて

0

名前だけを使用しますが、正しいパスにない可能性があります。 はちょうど2行目として追加:

cd(pathname) 

か、これであなたのwaveread行を置き換える:

[signal fs]=wavread(fullfile(pathname,training_Sample(i,1).name)); 
+0

もっと良い解決策は、 'fullfile'を使って' wavread'関数への入力を生成することです。 – matlabgui

+0

ありがとう!!それは今働いています:) –

+0

matlabgui:私は答えでそれを訂正していただきありがとうございます RajanSapkota:正しいと回答をマークしているConcider。 – Gelliant