文件交换的选择

我们最好的用户提交

file10, file1 file2排序问题:解决

布雷特建议选的这个星期,我非常同意他的点评:

似乎每个计算机用户,或另一个,一直面对排序字符串包含数值元素的选择。通常,这些字符串代表文件名中自动生成某种连续的方案。因为数字嵌入的字符串本身就是字符串,排序可能会有问题。例如,假设你的数码相机捕获和命名图片顺序,附加一个号码一个字符串的结束。几百次之后,你的文件列表可能包括一组文件名如下:

文件名= {
“MyImage20.jpg”,
“MyImage40.jpg”,
“MyImage60.jpg”,
“MyImage80.jpg”,
“MyImage100.jpg”,
“MyImage120.jpg”,
“MyImage140.jpg”,
“MyImage160.jpg”,
“MyImage180.jpg”
' MyImage200.jpg '};

如果你是这个列表进行排序使用MATLAB的内置函数,你会歪曲你的文件的顺序:

> >排序(文件名)

“MyImage100.jpg”
“MyImage120.jpg”
“MyImage140.jpg”
“MyImage160.jpg”
“MyImage180.jpg”
“MyImage20.jpg”
“MyImage200.jpg”
“MyImage40.jpg”
“MyImage60.jpg”
“MyImage80.jpg”

一个人在这个典型的方式是通过使用在数字的字符串。道格拉斯·施瓦兹的SORT_NAT排除这一步将字符串嵌入式数字视为数字,而不是字符。在一个漂亮的代码,道格使用正则表达式pre-parse字符串;结果被它刚刚好:

> > sort_nat(文件名)

“MyImage20.jpg”
“MyImage40.jpg”
“MyImage60.jpg”
“MyImage80.jpg”
“MyImage100.jpg”
“MyImage120.jpg”
“MyImage140.jpg”
“MyImage160.jpg”
“MyImage180.jpg”
“MyImage200.jpg”

|
  • 打印

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。