我正在研究一个小型神经网络项目,我对Matlab很新。
我有大约400个短wav文件,必须读取,然后组合成矩阵数据集。我无法找到有关如何将所有wav文件加载到Matlab中的任何信息,以便它以不同的名称存储每个文件。
我的问题是:
答案 0 :(得分:3)
此解决方案利用单元数组{...}
,可以处理不同维度,大小甚至类型的数据。在此,Y
会将.wav
个采样数据和FS
所有音频文件的采样率存储在目录中。
% create some data (write waves)
load handel.mat; %predifined sound in matlab stored in .mat
audiowrite('handel1.wav',y,Fs); %write the first wave file
audiowrite('handel2.wav',y,Fs); %write the second
clear y Fs %clear the data
% reading section
filedir = dir('*.wav'); %list the current folder content for .wav file
Y = cell(1,length(filedir)); %pre-allocate Y in memory (edit from @ Werner)
FS = Y; %pre-allocate FS in memory (edit from @ Werner)
for ii = 1:length(filedir) %loop through the file names
%read the .wav file and store them in cell arrays
[Y{ii,1}, FS{ii,1}] = audioread(filedir(ii).name);
end
您可以使用
访问数据for ind_wav = 1:length(Y)
wav_data = Y{ind_wav,1};
end