В строке
[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