sogooda 发表于 2007-12-4 14:57

[原创]查找一个目录下的某一类型所有文件

问题:如何找到某个文件夹下一种类型的所有文件的文件名,并保存到workspace的变量中。

解决要点:
key 1:使用dos命令dir可以列出所有的文件,dir *.m就可以列出所有扩展名为.m的文件,因此,可以考虑使用dos命令来解决。matlab中实现的命令如下
= dos('dir *.m');
key 2: result是一个字符串,需要从中挑取出文件名来,使用正则表达式。
filelist=regexp(result,'\w*?\.m','match');
返回的filelist就是包含所有.m文件名的元胞数组(cell array)。
为了通用,改写成如下的函数形式:

function filelist=somefilelist(dir,ext)
% filelist=filelist=somefilelist(dir,ext)
% pick up all files with extent name 'ext', and in the dictionary% specified as 'dir'
% Exampe: filelist=somefilelist('c:\matlab','m');
% author Zhang Fujian.
% email: zhangfujijan@gmail.com
% Dec. 4, 2007

if dir(length(dir))~='\'   dir=;   end

= dos(['dir ',dir,'*.',ext]);
filelist=regexpi(result,['\w*?\.',ext],'match');

have fun!

[ 本帖最后由 sogooda 于 2007-12-4 15:00 编辑 ]

花如月 发表于 2007-12-4 15:17

直接用dir('*.fmt')就可以一个目录下的某一类型所有文件

使用正则表达式的那个不错:handshake

以前没有接触过,因此不怎么会用。如果楼主有将matlab正则表达式的资料希望可以共享下,越简单的越好:@D

[ 本帖最后由 花如月 于 2007-12-4 15:20 编辑 ]

eight 发表于 2007-12-4 15:34

值得鼓励一下。不过貌似搞复杂了,dir 就可以达到目的。至于正则表达式的东西,google一下就有,如果不介意看英语,matlab 本身的帮助就有一大堆
页: [1]
查看完整版本: [原创]查找一个目录下的某一类型所有文件