处理目录中的多个文件

时间:2014-01-16 18:03:11

标签: matlab

如何使用matlab(2010)对包含大量数据文件的文件夹执行相同的数学运算(例如:平均值)并将它们存储在一个输出中? 这是我的代码,但没有成功。

function A = RepeatForAll()
A = 0;
% audio is the folder name where audio files are saved
path = fullfile(pwd,'audio');

files = dir(path);

for fileIndex=3:length(files)

    if (files(fileIndex).isdir == 0)
        if (~isempty(strfind(files(fileIndex).name,'wav')))
            fullfile(path,files(fileIndex).name)
            result = wavread(fullfile(path,files(fileIndex).name));

            % Any thing you have to for each audio file
            inputz=wavread(result);
            outx = mfccx(result);

            A(count,:) = mean(outx,2);
            count=count+1;
        end;
    end;
end;

1 个答案:

答案 0 :(得分:0)

您需要设置

count=0;

在进入for循环之前,现在count是未定义的。

此外,inputz=wavread(result);行未使用且错误。你不能在任何地方使用inputz,而是在wavread上调用result,这不是文件名(参见上面的行)。这会产生错误。

下次请更清楚,至少给我们提供错误信息。描述你认为应该发生的事情也很有用。

最后,正确格式化您的代码。在matlab中,选择您的代码(control+a),然后按control+i进行格式化。