可定制的自然顺序排序

字母数字的一个细胞/字符串/分类数组,和可定制的数字格式。

4.3 k下载

更新2022年1月31日

查看许可协议

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

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

版本 发表 发布说明
3.4.4

*添加测试点。

3.4.3

*现在R2009b兼容。

3.4.2

*编辑描述和帮助。

3.4.1

*编辑描述和帮助。

3.4.0

*添加大量的测试点。
*修复bug与空输入数组降序排序。

3.3.0

*改善测试函数,添加测试用例。

3.2.0

*更新TESTFUN。

3.1.0

*更健壮TESTFUN形式打印代码。
*改善选项检查。

3.0.5

*改善的例子。

3.0.4

*正确的总结。

3.0.3

*改善字符串处理。

3.0.2

*简化数值类处理。
*添加排列测试例子。

3.0.1

*处理单一元素没有号码。

3.0.0

*接受和排序字符串数组,直言数组,char单元阵列等。
*正则表达式和可选参数可能是字符串或字符。
*字符< num简化算法。
*简化调试输出单元阵列。

2.1.2

*一致的对齐选项卡/空间。

2.1.1

*添加错误id。

魅惑

*字符< num的修复处理。

2.0.0

总重写:更快和更少的内存。
*删除“asdigit”选项。
*重命名“beforechar”和“afterchar”到“num <字符”和“字符< num”。
*添加选项的num <南”和“南< num”。
*提高HTML文档。
*包括测试点。

1.11.0.0

*内部变量名一致。

1.10.0.0

*小帮助编辑。
*改善输入检查。
*提高广告和HTML。
*添加HTML文档。

1.9.0.0

*提高二进制数字处理。
*提高跳过字段的处理。
*添加跳过领域使用的一个例子。

1.8.0.0

*提高二进制字符串解析。
*更好的例子。

1.7.0.0

——更新文档,提高的例子。

1.6.0.0

——添加二进制数值解析。
——提高输入检查。
——用一个细胞替换多个调试输出数组的数组。
——允许看看正则表达式。

1.5.0.0

——简化十六进制的例子。
——正确的输出总结。

1.4.0.0

——现在解析十六进制,八进制子字符串。
——int64和uint64解析精度。
——允许<选项>以任何顺序排列。
-对于调试:返回字符和数值数组的索引。

1.3.0.0

——实现更紧凑的排序算法。
——“sscanf”数字格式可以由一个可选的输入参数控制。
——提供使用的例子。
-现在调试输出数组char +数字。

1.1.0.0

——添加示例显示不同的数字标记。
——不区分大小写排序现在违约。

1.0.0.0