图像缩略图

自然订单文件名排序

版本3.3.0(22.9 KB) 斯蒂芬Cobeldick.
字母数字类型的文件名或文件路径,具有可自定义的数字格式。

17.2k下载

更新2021年7月14日

查看许可证

编辑注意:此文件被选为Matlab Central挑选本周

要对字符串/单元格数组进行排序,请使用natsort:
要对字符串/小区数组进行排序,请使用natsortrows:
###摘要###
字母数字在字符串/小区/结构阵列中排序文本。考虑到任何数字子串的值,对字符串进行排序。比较例如:
>> a = {'a2.txt''a10.txt''a1.txt'};
>>排序(a)
ans =.'a1.txt''a10.txt''a2.txt'
>> natsortfiles(a)
ans =.'a1.txt''a2.txt''a10.txt'
默认情况下,NASORTFILES将所有连续数字解释为整数数字,可以使用正则表达式指定数字子字符串识别:有关详细信息,请参阅NATSORT。
natsortfiles不会执行天真的自然秩序,但单独排序文件名和文件扩展,以确保字典排序,其中较短的文件名始终在更长的内容中排序。同样在每个文件分隔字符下拆分文件路径,并且文件层次结构的每个级别都是单独排序的。
###示例使用dir ###
P ='c:\ somedir \ subdir';
s = dir(fullfile(p,'* .txt'));
s = natsortfiles;
对于k = 1:numel
f = fullfile(p,s(k).name)
结束
###文件依赖项###
自然秩序排序由函数natsort(文件Exchange 34464)提供。NatsortFiles支持所有Natsort的可选输入。金宝app
###【举例】
>> B = {'test2.m';'test10-old.m';'test.m';'test10.m';'test1.m'};
>>排序(b)%错误的号码订单:
ans =.
'test.m'
'test1.m'
'test10-old.m'
'test10.m'
'test2.m'
>> Natsortfiles(b)%较短的名称更长:
ans =.
'test.m'
'test1.m'
'test2.m'
'test10.m'
'test10-old.m'
%%目录名称:
>> c = {'A2-Old \ test.m';'a10 \ test.m';'a2 \ test.m';'a1 \ test.m';'a1-archive.zip'};
>>排序(c)数字命令错误,' - '在'\'之前排序:
ans =.
'a1-archive.zip'
'a10 \ test.m'
'a1 \ test.m'
'A2-Old \ test.m'
'a2 \ test.m'
>> Natsortfiles(c)%较短的名称更长:
ans =.
'a1 \ test.m'
'a1-archive.zip'
'a2 \ test.m'
'A2-Old \ test.m'
'a10 \ test.m'
>> d = {'a1 \ b''a + / b''a / b1''a = / b''a \ b0'};
>>排序(d)
ans =.'a + / b''a / b1''a1 \ b''a = / b''a \ b0'
>> Natsortfiles(D)
ans =.'a \ b0''a / b1''a1 \ b''a + / b''a = / b'
>> f = {'test_new.m';'test-ormal.m';'test.m'};
>>排序(f)%备注' - '之前排序'。':
ans =.
'test-ormal.m'
'test.m'
'test_new.m'
>> Natsortfiles(f)%较短的名称更长:
ans =.
'test.m'
'test-ormal.m'
'test_new.m'

引用

斯蒂芬Cobeldick(2021年)。自然订单文件名排序(//www.tatmou.com/matlabcentral/fileexchange/47434-nattural-order-filename-sort),Matlab中央文件交换。检索到