- 积分
- 607
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-2-5
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 张增海_man 于 2013-9-4 15:04 编辑
工作需要,matlab自带的ls搜索文件夹中的文件难以满足需要,自己编织了列举某文件夹中指定通配符的文件的小程序,
可以搜索出 不含通配符,很有1个通配符,和含有2个通配符的文件列表,当然根据需要还可以追加,各位高手可以自行添加代码,本帖仅为抛砖引玉。
输入参数为路径:filepath,第一、第二通配符,wildcards1和wildcards2
输出参数为文件列表: listing
如果文件夹内不含所要求的内容,则范围空字符,可以用 isempty 判定- function listing = zh_ls(filepath,wildcards1,wildcards2)
- % 列举出指定文件夹下指定通配符的文件名
- % 这里可以列举两个
-
- filelist = ls(filepath);
- [m,~] = size(filelist);
- if(m<3)
- listing = [];
- return,
- else
- filelist = filelist(3:end,:); % 去掉 . 和 .. 的两个
- end
-
-
- if(nargin==1)
- listing = filelist;
- return,
- end
-
-
- filelistcell = cellstr(filelist);
- index1 = strfind(filelistcell,wildcards1); % index1 is cell
- j=0;
- for i = 1:length(index1)
- if(~isempty(index1{i}))
- j=j+1;
- index1num(j) = i;
- end
- end
- if(j==0)
- listing = [];
- return,
- else
- filelist2 = filelist(index1num,:);
- end
-
- if(nargin==2)
- listing = filelist2;
- return,
- end
-
- filelistcell2 = cellstr(filelist2);
- index2 = strfind(filelistcell2,wildcards2); % index2 is cell
- j=0;
- for i = 1:length(index2)
- if(~isempty(index2{i}))
- j=j+1;
- index2num(j) = i;
- end
- end
-
- if(j==0)
- listing = [];
- return,
- else
- filelist3 = filelist2(index2num,:);
- end
-
- if(nargin==3)
- listing = filelist3;
- return,
- end
- end
复制代码 |
评分
-
查看全部评分
|