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账户登录或创建一个新的。