Matlab中dir函数使用小技巧

  • Post author:
  • Post category:其他


想必很多小伙伴在matlab中对文件进行批处理时经常会使用dir函数吧,dir函数用于列出文件夹中的内容。使用语法如下:

% Matlab

dir                  % 列出当前文件夹中的文件和文件夹,当然调用方式也可以是listing = dir
dir name             % 列出当前文件夹中与name同名的文件和文件夹,不支持调用方式listing = dir name
listing = dir(name)  % 列出当前文件夹中与name同名的文件和文件夹

当使用如下调用方式时,注意文件个数为当前文件夹下文件(包括文件夹)数目+2。

% Matlab

listing = dir;

% 为什么是文件个数加2
listing(1).name
listing(2).name

因为该函数会返回当前目录(’.’)和上一级目录(’..’)。

当然为了避免这种现象,我们可以指定待查找的文件格式,这样就不会导致要处理的文件个数莫名其妙的多出两个了。这时我们就需要使用通配符*和**。注意**通配符旁边的字符必须是文件分割符。例如我们想要返回当前文件夹下所有的txt类型文件,就可以使用如下调用方式:

% Matlab

listing = dir('*.txt')

列出当前文件夹和下一级文件夹中所有的txt类型文件,可以使用如下调用方式:

% Matlab

listing = dir('**/*.txt')

当然,使用通配符*还可以指定文件名中包含特定字符的文件,调用方式如下:

% Matlab

listing = dir('*hello*.txt')   % 返回文件名中包含hello的文件信息

使用length函数返回找到的文件个数,结合for循环就可以实现对文件批处理。

% Matlab

LS = length(listing); % 文件个数

for ii = 1:LS
    ...
end



版权声明:本文为weixin_43568289原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。