编辑注意:此文件被选为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中央文件交换。检索到。
2.1.0 | *修复char |
|
2.0.0 | * natsort全重写:更快,内存较少。 |
|
1.6.0.0. | *添加(非常有用)调试输出参数。 |
|
1.5.0.0. | *改善Blurb和HTML。 |
|
1.5.0.0. | *次要帮助编辑。 |
|
1.5.0.0. | *添加HTML文档。 |
|
1.5.0.0. | *改善输入检查。 |
|
1.4.0.0 | *更清晰地描述文件依赖项。 |
|
1.3.0.0. | *提高功能描述。 |
|
1.2.0.0. | - 仅更新文档,改进示例。 |
|
1.1.0.0. | - 完全致谢。 |
灵感来自:asort:行人字母数字字符串分拣机那sort_nat:自然命令排序那getfullpath.那科学前缀号码那可定制的自然秩序排序那单词的号码那自然秩序行排序那单词到号码那编号的科学前缀那下一个可用文件名
灵感:单词到号码那用于MRI数据的参数映射脚本那可定制的自然秩序排序那单词的号码那自然秩序行排序那交互式正则表达式工具那下一个可用文件名
易于使用,并完成工作
像魅力一样,非常感谢分享这个!
谢谢!
只是我需要的。谢谢!
好工作!
优秀的工作
喜欢它。这么多努力救了我。
非常有帮助。谢谢你的贡献。
谢谢你。
brilliant!
非常有用的功能,感谢您的共享!
效果完美。令人敬畏的工作。谢谢。
nice!
非常感谢!
非常有用的功能。谢谢。
谢谢!伟大的事情有助于很多!
非常感谢,非常有帮助!
谢谢。这是出色的。按预期工作。
这是一个强大,可靠,有效且记录好的工具。在许多情况下需要弦或文件名的自然分类。谢谢。
非常乐于助人!谢谢......
而且你的不断提醒不使用eval,我也非常感谢。
非常感谢!
非常感谢,
真的帮了我。
非常感谢!
谢谢!
非常感谢你。
谢谢,非常方便。
@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'
你能在更新中实施这一点吗?或者建议如何自定义全面列出文件的函数?
它真的很有用!THX。
哇,先生,我的帽子。伟大的功能和文档。非常感谢!
谢谢,这正是我要寻找的是品种的名称文件
1-d ...,2-d ...,......等等。