2016-04-01 4 views
1

特定のディレクトリから複数のファイルを読みたい。複数のファイルを読む(wavread)

prefix = '\wav\'; 
wav_arr = ['1.wav'; '2.wav'; '3.wav']; 
wav_arr = cellstr(wav_arr); 

len = length(wav_arr); 
sig = []; 
fs = []; 
for i = 1:len 
    path = strcat(pwd, prefix, wav_arr(i)); 
    [s, curr_fs] = audioread(path); 
    sig = [sig s]; 
    fs = [fs curr_fs]; 
end 

しかし、私はエラーが表示されます:ここに私のスクリプトがある

Error using which 
Argument must contain a string. 

Error in audiovideo.internal.absolutePathForReading (line 7) 
whichFileName = which(filename); 

Error in audioread (line 74) 
filename = audiovideo.internal.absolutePathForReading(... 

Error in main_experiment (line 14) 
    [s, curr_fs] = audioread(path); 

問題はpathが、それはstringではありません、1x1 cellであるということです。 pathに対してcellstr()を実行すると機能しません。

+0

パスはMATLAB関数を避けるすべてです、セル間の違いを理解するために、MATLABにおけるセルに関するドキュメントを読み出す

for i = 1:len path = strcat(pwd, prefix, wav_arr{i}); [s, curr_fs] = audioread(path); sig = [sig s]; fs = [fs curr_fs]; end 

になりますこの名前を変数として使用してください。 'strcat(pwd、prefix、wav_arr {i})の代わりに – obchardon

答えて

2
for i = 1:len 
    path = strcat(pwd, prefix, wav_arr(i)); 
    [s, curr_fs] = audioread(path); 
    sig = [sig s]; 
    fs = [fs curr_fs]; 
end 

(1)及びセル{1}

+1

; '代わりに' fullfile(pwd、prefix、wav_arr {i});を使用することを提案します。その意図ははっきりしたIMHOです。さらに、 'prefix = 'wav''を使用することができ、正しいスラッシュを持つことを心配する必要はありません。 'path'の名前を' filename'に変更してください:) –

関連する問題