MatLab列出文件夹中的文件(不包括目录)

时间:2014-02-14 13:45:57

标签: matlab path

所以我知道我可以使用dir()ls()这样的函数列出当前文件夹中的所有文件和目录,我知道一旦列出,我可以用字段{告诉他们彼此{1}}。

但有没有办法从正在开始排除目录并单独列出文件?

更好的是,有没有办法排除当前isdir和父.目录 - 当然会(每次)显示 - 并列出其他所有文件和目录?说真的,谁使用..想知道ls()是否存在?

2 个答案:

答案 0 :(得分:2)

dir的输出是操作系统提供的输出。因此,根据您运行的系统,它可能会有所不同。以下是我的方法:

list=dir();
CleanList=setdiff({list.name},{'.','..'})'; 

答案 1 :(得分:1)

我不确定是否有内置方法,但为什么不编写自定义函数来做你想要的呢?

如:

function list = files_dir(varargin)
% Similar functionality to 'dir', but only returns files (no folders)

list = dir(varargin{:});

list([list.isdir]) = [];

然后,您可以对其进行自定义以执行其他功能,例如排除隐藏文件。

对于您的第二个请求,其中排除了目录'.''..'

function list = dir_exclude_self(varargin)
% same as 'dir', but doesn't return '.' or '..'

list = dir(varargin{:});

self_indices = ismember({list.name}, {'.', '..'});
list(self_indices) = [];

如果将这样的函数放在计算机上的特定位置,可以通过将它们添加到startup.m文件中的MATLAB路径来确保它们始终可用。