MATLAB - 为多个文件创建一个列表

时间:2015-04-10 20:59:23

标签: matlab

我不知道标题是否合适,但我需要导入几个文件,例如25(像info.asd,ina.asd,sdd.asd等文件)。因此在我看来,可以通过for循环导入它们而不是硬编码操作。任何想法如何在matlab中实现列表,所以软件知道要导入什么?

1 个答案:

答案 0 :(得分:0)

你可以在没有循环的情况下使用此功能。 sPath是包含文件的路径,sExt是您要列出的文件的扩展名。

function cList = fileList(sPath, sExt)

    if nargin == 1
        sExt = '.asd';
    end

    % List files in the given path
    stDir = dir(sPath);
    tDir  = struct2table(stDir);
    tFile = tDir(~tDir.isdir, :);

    % Keep only file with the right extension
    cList  = tFile.name;
    [~, cList, cExt]  = cellfun(@fileparts     , ...
                                cList          , ...
                                'UniformOutput', false);
    vIsIni            = cellfun(@(x) strcmpi(x, sExt), cExt);
    cList = cList(vIsIni);
end