编者按:该文件被选为MATLAB中央本周精选
对使用的任何文件名或文件夹名进行排序
NATSORTFILES
:
用于对字符串/单元格数组的行进行排序
NATSORTROWS
:
总结
对字符串/单元格/分类数组中的文本进行字母数字排序。考虑到任意数字子字符串的值,按字符代码对文本进行排序。例如:比较
X = {“a2”,“a10”,“a1”};
排序(X)
ans =“a1”“a10”“a2”
的作用(X)
ans =“a1”“a2”“a10”
默认情况下
的作用
将所有连续数字解释为整数,可以使用正则表达式指定数字子串识别,允许数字子串具有:
- 一个+ / -的迹象
- 小数点和小数分数
- e表示法指数
- 十进制、八进制、十六进制或二进制记数法
- 正或南值
- 正则表达式支持的标准:查找、量词等。
当然,排序本身也可以被控制:
- 升序/降序排序方向
- 字符大小写敏感性/不敏感
- 数字和字符的相对顺序
- 数字的相对顺序vs南年代
例子
多个整数(例如发布版本号):
>> a = {“v10.6”,“v9.10”,“v9.5”,“v10.10”,“v9.10.20”,“v9.10.8”};
> >排序(A)%进行比较。
ans =“v10.10”“v10.6”“v9.10”“v9.10.20”“v9.10.8”“v9.5”
> >的作用(一)
ans =“v9.5”“v9.10”“v9.10.8”“v9.10.20”“v10.6”“v10.10”
整数、小数、NaN或Inf数,可能带有+/-符号:
>> b = {“测试+南”,“test11.5”,“测试- 1.4”,“测试”,“test-Inf”,“测试+ 0.3”};
> >排序(B)%进行比较。
ans =“测试”“测试+ 0.3”“测试+南”“测试- 1.4”“test-Inf”“test11.5”
> >的作用(B,(- +) ? (NaN |正| \ d + \ ? \ d *)”)
ans =“测试”“test-Inf”“测试- 1.4”“测试+ 0.3”“test11.5”“测试+南”
整数或十进制数,可能带指数:
>> c = {“0.56 e007”,”,“43依照”,“10000”,“9.8”};
> >排序(C)%进行比较。
ans =”“0.56 e007”“10000”“43依照”“9.8”
> >的作用(C,' \ d + \ ? \ d * (E - +] ? \ d +) ?”)
ans =”“43依照”“9.8”“10000”“0.56 e007”
%%十六进制数(带有'0X'前缀):
>> d = {“a0X7C4z”,“a0X5z”,“a0X18z”,“a0XFz”};
> >排序(D)%进行比较。
ans =“a0X18z”“a0X5z”“a0X7C4z”“a0XFz”
> >的作用(D,“0 x [0-9A-F] +”,' %我)
ans =“a0X5z”“a0XFz”“a0X18z”“a0X7C4z”
% %二进制数:
>> e = {“a11111000100z”,“a101z”,“a000000000011000z”,“a1111z”};
> >排序(E)%进行比较。
ans =“a000000000011000z”“a101z”“a11111000100z”“a1111z”
> >的作用(E,“[01]+”,“% b”)
ans =“a101z”“a1111z”“a000000000011000z”“a11111000100z”
% %例灵敏度:
>> f = {“a2”,“样子”,“A1”,“a10”,“A2”,“a1”};
> >的作用(F []“ignorecase”)%的默认
ans =“A1”“a1”“a2”“A2”“a10”“样子”
> >的作用(F []“matchcase”)
ans =“A1”“A2”“样子”“a1”“a2”“a10”
% %排序顺序:
>> g = {' 2 ',“一个”,”,“3”,“B”,' 1 '};
> >的作用(G, [],“提升”)%的默认
ans =”' 1 '' 2 '“3”“一个”“B”
> >的作用(G, [],“下”)
ans =“B”“一个”“3”' 2 '' 1 '”
> >的作用(G, [],“num <字符”)%的默认
ans =”' 1 '' 2 '“3”“一个”“B”
> >的作用(G, [],“char < num”)
ans =”“一个”“B”' 1 '' 2 '“3”
%% UINT64数字(全精度):
> >的作用({“a18446744073709551615z”,“a18446744073709551614z”[]},“陆%”)
ans =“a18446744073709551614z”“a18446744073709551615z”
引用作为
Stephen23(2022)。可定制的自然顺序排序(//www.ru-cchi.com/matlabcentral/fileexchange/34464-customizable-natural-order-sort), MATLAB中央文件交换。检索.
MATLAB版本兼容性
创建R2010b
与R2009b及后续版本兼容
平台的兼容性
窗户 macOS Linux标签
确认
启发:排序:一种普通的字母数字串排序器,sort_nat:自然顺序排序,编号转科学字冠,号码的话,自然秩序行排序,自然秩序文件名排序,单词数量,科学数字前缀,下一个可用的文件名
启发:单词数量,科学数字前缀,数字,Yllion,编号转科学字冠,数字,Ordinal-String,号码的话,自然秩序行排序,自然秩序文件名排序,交互式正则表达式工具