可定制的自然顺序排序

3.4.4版本(33.3 KB) Stephen23
字母数字的一个细胞/字符串/分类数组,和可定制的数字格式。

4 k下载

更新2022年1月31日

查看许可协议

编者按:这个文件被选为MATLAB中央选择的

排序任何文件名或文件夹名称使用 NATSORTFILES :
排序字符串的行/单元阵列使用 NATSORTROWS :
总结
字母数字排序字符串/电池/分类中的文本数组。类的文本字符代码考虑任意数量的子字符串的值。例如:比较
X = {“a2”,“a10”,“a1”};
排序(X)
ans =“a1”“a10”“a2”
的作用(X)
ans =“a1”“a2”“a10”
默认情况下 的作用 解释所有的连续数字整数数字,可以使用一个正则表达式,指定子串识别允许子字符串数量:
  • 一个+ / -的迹象
  • 小数点和小数
  • e表示法指数
  • 十进制、八进制、十六进制或二进制符号
  • 标准支持的正则表达万博1manbetx式:看看,量词等。
当然,排序本身也可以控制:
  • 升序/降序排序方向
  • 字符大小写敏感性/不敏感
  • 相对顺序的数字和字符
  • 相对的顺序数字vs年代
例子
% %多个整数(如发布版本号):
> > = {“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”
% %整数、小数、南或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”
% %十六进制数字(0 x的前缀):
> > 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.tianjin-qmedu.com/matlabcentral/fileexchange/34464-customizable-natural-order-sort), MATLAB中央文件交换。检索