编者按:此文件被选为MATLAB Central本周精选
来排序任何文件名称或文件夹名称使用
NATSORTFILES
:
要对字符串/单元格数组的元素排序,请使用
的作用
:
总结
对字符串/单元格/类别/表格数组的行进行字母数字排序。根据字符代码对文本进行排序,同时考虑任何数字子字符串的值。比较例如:
>> x = {“x2”,“十”;“x10”,' 0 ';x1的,' 0 ';“x2”,' 2 '};
> > sortrows (X)数字顺序错误
ans =
x1的' 0 '
“x10”' 0 '
“x2”“十”
“x2”' 2 '
> > natsortrows (X)正确的数字顺序
ans =
x1的' 0 '
“x2”' 2 '
“x2”“十”
“x10”' 0 '
默认情况下
NATSORTROWS
将所有连续数字解释为整数,可以使用正则表达式指定数字子字符串识别:参见
的作用
获取详细信息。
文件的依赖
自然顺序排序由函数提供
的作用
(文件交换34464)。所有的
的作用
的可选输入由
NATSORTROWS
.
例子
>> a = {“B”,' 2 ',“X”;“一个”,“100”,“X”;“B”,“十”,“X”;“一个”,' 2 ',“Y”;“一个”,“20”,“X”};
> > sortrows (A)% SORTROWS作比较。
ans =
“一个”“100”“X”
“一个”' 2 '“Y”
“一个”“20”“X”
“B”“十”“X”
“B”' 2 '“X”
> > natsortrows (A)
ans =
“一个”' 2 '“Y”
“一个”“20”“X”
“一个”“100”“X”
“B”' 2 '“X”
“B”“十”“X”
> > natsortrows ([],“下”)
ans =
“B”“十”“X”
“B”' 2 '“X”
”““100”“X”
“一个”“20”“X”
“一个”' 2 '“Y”
> > sortrows (A,[2、3])% SORTROWS作比较。
ans =
“B”“十”“X”
“一个”“100”“X”
“一个”' 2 '“Y”
“B”' 2 '“X”
“一个”“20”“X”
> > natsortrows([],[2、3])
ans =
“一个”' 2 '“Y”
“B”' 2 '“X”
“B”“十”“X”
“一个”“20”“X”
“一个”“100”“X”
> > natsortrows([],假的,真的,真的,{“提升”,“下”})
ans =
“一个”' 2 '“Y”
“B”' 2 '“X”
“B”“十”“X”
“一个”“20”“X”
“一个”“100”“X”
> > natsortrows ([], {“忽略”,“提升”,“下”})
ans =
“一个”' 2 '“Y”
“B”' 2 '“X”
“B”“十”“X”
“一个”“20”“X”
“一个”“100”“X”
T = cell2table(A);
natsortrows (T,[],[2、3])%的表
ans =
A1A2A3
___________
“一个”' 2 '“Y”
“B”' 2 '“X”
“B”“十”“X”
“一个”“20”“X”
“一个”“100”“X”
natsortrows (T [] {“A2”,“A3”}, {“提升”,“下”})%的表
ans =
A1A2A3
___________
“一个”' 2 '“Y”
“B”' 2 '“X”
“B”“十”“X”
“一个”“20”“X”
“一个”“100”“X”
>> b = {“ABCD”;' 3 e45 ';“67.8”;“正”;“-12”;“+ 9”;“南”};
> > sortrows (B)% SORTROWS作比较。
ans =
“+ 9”
“正”
“-12”
' 3 e45 '
“67.8”
“ABCD”
“南”
> > natsortrows (B,(- +) ? (NaN |正| \ d + \ ? \ d * (E - +] ? \ d +)吗?)”)
ans =
“-12”
“+ 9”
“67.8”
' 3 e45 '
“正”
“南”
“ABCD”
>> c = {“A2”, 2;“A10”, 1;“A2”1};列中的标量数字:
> > natsortrows (C []“sortnum”)
ans =
“A2”[1]
“A2”[2]
“A10”[1]
> > natsortrows (C []“sortnum”, {“提升”,“下”})
ans =
“A2”[2]
“A2”[1]
“A10”[1]
引用作为
Stephen23(2023)。自然顺序行排序(//www.ru-cchi.com/matlabcentral/fileexchange/47433-natural-order-row-sort), MATLAB中央文件交换。检索.
MATLAB版本兼容性
使用R2010b创建
与R2009b及后续版本兼容
平台的兼容性
窗户 macOS Linux标签
版本 | 发表 | 发布说明 | |
---|---|---|---|
3.4.4 | *添加测试用例。 |
||
3.4.3 | *现在R2009b兼容。 |
||
3.4.2 | *编辑描述和帮助。 |
||
3.4.1 | *编辑描述和帮助。 |
||
3.4.0 | *添加大量的测试用例。 |
||
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 | *接受并排序字符串数组,分类数组,单元格数组的字符等。 |
||
2.1.2 | *一致对齐制表符/空格。 |
||
2.1.1 | *添加错误id。 |
||
魅惑 | 修正了char |
||
2.0.0 | * NATSORT总重写:更快,更少的内存。 |
||
1.6.0.0 | 添加(非常有用的)调试输出参数。 |
||
1.5.0.0 | *改进宣传和HTML。 |
||
1.4.0.0 | *修复缺失的图像。 |
||
1.3.0.0 | *完善功能描述。 |
||
1.2.0.0 | -仅更新文档,改进示例。 |
||
1.1.0.0 | -完整的致谢。 |
||
1.0.0.0 |