如何排序的顺序由“dir”命令? ? ?

19日视图(30天)
迪夫
迪夫 2013年6月7日
编辑: Stephen23 2021年4月18日
我阅读从一个文件夹的图像通过使用以下代码
[folder1] = uigetdir ();
f = dir (folder1);
k = 1:尺寸(f, 1) 2
file_n = f (k + 2) . name;
结束
图片在文件夹“test_base1”,“test_base2”, ....但“dir”的顺序是“test_base1”、“test_base10”、“test_base2”. .我明白命令正在ascii-betical订单. .我已经通过了前一个问题和答案。似乎很复杂。任何一个能给一个好的解决方案,使用“dir”后图片的顺序
1评论
Stephen23
Stephen23 2016年2月22日
编辑:Stephen23 2021年4月18日
你可以 下载 我FEX提交 natsortfiles :
> > S = dir (‘* . txt”);
> > S.name
ans =
“1. txt”
ans =
“10. txt”
ans =
“2. txt”
> > S = natsortfiles(年代);%由文件名字母数字排序
> > S.name
ans =
“1. txt”
ans =
“2. txt”
ans =
“10. txt”

登录置评。

接受的答案

Azzi Abdelmalek
Azzi Abdelmalek 2013年6月7日
文件= {“test_base1”,“test_base10”,“test_base2”}
[idx, idx] =排序(cellfun (@ (x) str2num (char(正则表达式(x,“\ d *”,“匹配”))))),文件
new_file =文件(idx)
3评论
迪夫
迪夫 2013年6月8日
嘿”regexp (x,‘\ d * $’,‘匹配’)”正在为这个问题。不管怎么说谢谢

登录置评。

更多的答案(0)

类别

找到更多的在文件操作帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!