我有一个包含大约500个WAV文件的文件夹,作为数据库的一部分。
现在,我想逐个遍历文件夹内容,并在MATLAB中对每个文件应用FFT。
到目前为止,这是我的代码:
Files=dir('Path\to\file\*.wav');
for k=1:length(Files)
FileNames = System.IO.Path.GetFullPath(Files(k).name)
y = abs(fft(wavread(FileNames)))
end
然而,这在y
中没有给我任何价值。我有什么地方出错吗?
请注意,我正在获取每个文件的完整路径名,但将其传递给FFT函数却没有给我任何结果。
答案 0 :(得分:2)
System.IO.Path.GetFullPath
为您提供了来自matlab的当前路径,因此Files(k).name
可以在错误的位置连接。
一种方法:
local='C:\Users\Eder\Downloads\';
filetype='*.wav';
pathsearch = [local filetype];
Files=dir(pathsearch);
for k=1:length(Files)
FileNames = [local Files(k).name]
y = abs(fft(wavread(FileNames)))
end