图像缩略图

自然订单文件名排序

版本2.1.0(18.6 kB) 斯蒂芬Cobeldick.
自然秩序的文件名或文件路径,具有可自定义的数字格式。

262下载

更新2019年9月26日

查看许可证

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

要对单元格数组进行排序所有字符串,请使用natsort:
//www.tianjin-qmedu.com/matlabcentral/fileexchange/34464-customizable-natural-Order-sort.
要对字符串数组进行排序,请使用natsortrows:
//www.tianjin-qmedu.com/matlabcentral/fileexchange/47433-natural-order-row-sort.

###摘要###

字母表中的字母数字排序(1xn char)。考虑在这些字符串内发生的任何数字子字符串的值进行排序。比较例如:

>> 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不会执行天真的自然秩序,但单独排序文件名和文件扩展,以确保字典排序,其中较短的文件名始终在更长的内容中排序。同样在每个文件分隔字符下拆分文件路径,并且文件层次结构的每个级别都是单独排序的。

###有程序和单元格数组的示例###

d ='c:\ test';
s = dir(fullfile(d,'*。txt'));
n = natsortfiles({s.name});
对于k = 1:numel(n)
fullfile(d,n {k})
结束

###文件依赖项###

自然秩序排序由函数natsort(文件Exchange 34464)提供。NatsortFiles支持所有Natsort的可选输入。万博1manbetx

###【举例】

>> B = {'test_new.m';'test-ofd.m';'test.m'};
>>排序(b)%注释' - '之前''。':
ans =.
'test-ormal.m'
'test.m'
'test_new.m'
>> NatsortFiles(b)更长的较短名称(字典排序):
ans =.
'test.m'
'test-ormal.m'
'test_new.m'

>> C = {'test2.m';'test10-orhal.m';'test.m';'test10.m';'test1.m'};
>>排序(c)%错误数字订单:
ans =.
'test.m'
'test1.m'
'test10-old.m'
'test10.m'
'test2.m'
>> NatsortFiles(c)%更短的名称:
ans =.
'test.m'
'test1.m'
'test2.m'
'test10.m'
'test10-old.m'

%%目录名称:
>> d = {'a2-all \ test.m';'a10 \ test.m';'a2 \ test.m';'a1archive.zip';'a1 \ test.m'};
>>排序(d)错误的数字顺序错误,' - '在'\'之前排序:
ans =.
'a10 \ test.m'
'a1 \ test.m'
'a1archive.zip'
'A2-Old \ test.m'
'a2 \ test.m'
>> NatsortFiles(D)更长的较短名称(字典排序):
ans =.
'a1archive.zip'
'a1 \ test.m'
'a2 \ test.m'
'A2-Old \ test.m'
'a10 \ test.m'

引用

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

评论和评级(48.

Geunhwan Kim

creatlee.

詹娜

易于使用,并完成工作

Sergiy Lukin

像魅力一样,非常感谢分享这个!

H.S.

谢谢!

jure tica

只是我需要的。谢谢!

Lars Loetgering.

迈克尔·萨曼

好工作!

Ahmad Obeid.

优秀的工作

Antonio Susin.

Aditya Kiran GH.

喜欢它。这么多努力救了我。

Zeba Ahmad.

Peihan Tu.

Stefano Caschera

Dhyana Ramamurthy

非常有帮助。谢谢你的贡献。

Arslan Ahmed Awan.

谢谢你。

ANU_M.

brilliant!

基兰PS.

景阳

非常有用的功能,感谢您的共享!

SörenHufschmidt.

Niravkumar Ambaliya.

效果完美。令人敬畏的工作。谢谢。

Luis Ciria

nice!

Tektao.

Tektao.

jurgen vl.

杨冉

非常感谢!

凯文何

非常有用的功能。谢谢。

Tatyana P.

谢谢!伟大的事情有助于很多!

坎贝尔克Suat Gurel.

玛丽亚米

非常感谢,非常有帮助!

Rahul Kumar Sevakula.

谢谢。这是出色的。按预期工作。

Paolo.

1月

这是一个强大,可靠,有效且记录好的工具。在许多情况下需要弦或文件名的自然分类。谢谢。

Alutsyah Lutheian.

非常乐于助人!谢谢......
而且你的不断提醒不使用eval,我也非常感谢。

ayu dyah.

非常感谢!

AKB Akbar.

非常感谢,
真的帮了我。

胡石

非常感谢!

爱我爱我的狗

谢谢!

Sanggon Kim

非常感谢你。

Sid.Sapien.

谢谢,非常方便。

斯蒂芬Cobeldick.

@Will:它并不是那么容易“列出完全像Windows的文件”。Windows首先放置非字母数字打印字符,但他们的订单没有明确指明:你知道为什么Windows在'+'之前排序'〜',即使这不是他们的角色代码订单我没有。Windows有哪些其他特殊字符订单?你能告诉我这个订单的指定位置吗?

然后存在_Which_Windows排序顺序的问题:文件资源管理器排序顺序或PowerShell排序顺序?Win2k排序顺序,MS Excel排序顺序,或Vista / Win7排序顺序?它们都是不同的......然后为什么WANDEW Windows操作系统,其他主要操作系统呢?哪些?

不仅是“Windows排序顺序”非常含糊地定义,此更改实际上将突破NatSort:我清楚地说明了Natsort根据两个简单标准进行排序:字符代码和数值。这意味着natsort可以提供与其他语言编写的许多其他“自然秩序排序”功能的相同排序(做互联网搜索),这是根据我的提交相同的基本规则的所有排序,并且可以使用非常的单个排序顺序精确定义的字符代码顺序。您建议的是用严格定义的专有排序顺序替换公开定义和普遍的已知的字符码顺序。有趣的......

但它肯定是_possible_写一个这样的函数:向我展示一个定义“Windows排序顺序”的引用,然后我可以帮助您。

威尔

这真的很有用,但我刚刚发现Windows将列出比with号的“_”更高的文件,natsort和natsortfiles将列出数字和字母后的“_”。

例如Windows列表:
_file.
1.文件1
2.文件2
文件
B文件

在Matlab:

>> natsort({'1.文件1';'2。文件2';'文件';'b文件';'_文件'})

ans =.

'1。文件1'
'2。文件'
'一个文件'
'b文件'
'_file'

你能在更新中实施这一点吗?或者建议如何自定义全面列出文件的函数?

尤利西斯C.

昌杰关

它真的很有用!THX。

摩西

哇,先生,我的帽子。伟大的功能和文档。非常感谢!

摩西

Sada Shiva

Stelios.

谢谢,这正是我要寻找的是品种的名称文件
1-d ...,2-d ...,......等等。

更新

2.1.0

*修复char

2.0.0

* natsort全重写:更快,内存较少。
*提高HTML文档。
*包括试验箱。

1.6.0.0.

*添加(非常有用)调试输出参数。

1.5.0.0.

*改善Blurb和HTML。

1.5.0.0.

*次要帮助编辑。

1.5.0.0.

*添加HTML文档。

1.5.0.0.

*改善输入检查。
*包括NatSort函数。

1.4.0.0

*更清晰地描述文件依赖项。
*改善FilePath排序的示例。

1.3.0.0.

*提高功能描述。
*更好的例子。

1.2.0.0.

- 仅更新文档,改进示例。

1.1.0.0.

- 完全致谢。