data_structure
是一个(长度(num_sounds)行x 3列单元格的单元格
第三列=共振峰数据
for i=1:num_sounds;
cd(char(sound_dirs{i})); %open a directory
wav_list=dir('*.wav'); %get all the .wav files in the folder
data_structure{i,2}=wav_list; % fills second column with struct the length of the .wav files.
data_structure{i,1}=words{i};
end
问题就在这里
for i=1:num_sounds;
num_wavs=length(data_structure{i,2});
for i=1:num_wavs;
[y Fs]= audioread((data_structure{i,2}.name)); %%problem here
我意识到问题在于,我要同时调用同一文件夹中的所有“ .wav”文件,而不能一次调用每个文件。
我尝试了data_structure{1,2}.name(40); % the first folder has 47 .wav files
但这没用。
name
<-保存.wav文件的所有名称。
答案 0 :(得分:2)
在线
[y Fs] = audioread((data_structure{i,2}.name)); %%problem here
表达式data_structure{i,2}.name
会将所有文件名(在您的示例中为47)作为函数audioread
的输入参数一次输入,因此会出现错误消息。
如果要分别访问每个.wav
文件,则需要在dir
返回的结构中对它们进行索引,即
for i=1:num_sounds;
these_files = data_structure{i,2};
for i=1:length(these_files)
[y Fs] = audioread(these_files(i).name));
% Do whatever needs to be done with y, Fs
end
end