文件交换的选择

我们最好的用户提交

自然顺序排序

肖恩本周的选择是自然顺序排序的套件工具Stephen Cobeldick

如果你处理数据,有许多不同的命名方案文件,你可能会遇到。这些数值排序顺序可能一样的ASCII顺序排序顺序。但它并不总是,如何应对,这是一个常见的问题MATLAB的答案

我通常尝试以下方式设置自己的文件命名时使用“% 0 xi”格式num2str。例如:

2 = (1 2 17 495 3920)% % 04 i - 4 0前面的号码。filenameii = [“文件”num2str(二世,' % 04我). csv”];disp (filenameii)结束
file0001。csv file0002。csv file0017。csv file0495。csv file3920.csv

斯蒂芬的自然顺序排序工具帮助文件或名称不一定有这个设置。例如,让我们来看看几的ASCII顺序文件使用sortrows

文件= {“file1.csv”,“file111.csv”,“file21.csv”,“file211.csv”}';disp (sortrows(文件)
“file1.csv”“file111.csv”“file21.csv”“file211.csv”

数值file111.csv不应该在file21.csv。现在,让我们使用的作用这样做对我们来说:

disp(作用(文件)
“file1.csv”“file21.csv”“file111.csv”“file211.csv”

另utilies Stephen提供了允许更多扩展的控制,它不仅致力于单一元素的细胞,而是一整个完整的文件路径。例如,我该如何排序以下?

文件= {“C: \ \ Exp1 \ test1.csv文件”,“C: \ \ Exp2 \ test1.csv文件”,“C: \ \ Exp2 \ test2.csv文件”,“C: \ \ Exp1 \ test2.csv文件”}';disp(文件)
“C: \ \ Exp1 \ test1.csv文件”“C: \ \ Exp2 \ test1.csv文件”“C: \ \ Exp2 \ test2.csv文件”“C: \ \ Exp1 \ test2.csv文件”

按实验:

disp (natsortfiles(文件)
“C: \ \ Exp1 \ test1.csv文件”“C: \ \ Exp1 \ test2.csv文件”“C: \ \ Exp2 \ test1.csv文件”“C: \ \ Exp2 \ test2.csv文件”

通过测试,我们可以把文件路径分割成块,然后使用natsortrows件:

%分割文件分隔符filepieces = regexp(文件,(filesep),“分裂”);filepieces = vertcat (filepieces {:});disp (filepieces)
“C:“‘Exp1‘test1“文档”。csv“C:“文件”“Exp2“test1。csv“C:“文件”“Exp2“test2。csv“C:“文件”“Exp1 ' ' test2.csv '
%通过第四列进行排序(测试),那么第三列(实验)[~,idx] = natsortrows (filepieces [4 3]);disp(文件(idx))
“C: \ \ Exp1 \ test1.csv文件”“C: \ \ Exp2 \ test1.csv文件”“C: \ \ Exp1 \ test2.csv文件”“C: \ \ Exp2 \ test2.csv文件”

这些文件提供很好的帮助,良好的文档记录。

我唯一的建议为斯蒂芬会提供这些文件在文件交换一个条目(或作为第四个条目)。这是专为我懒惰的原因,和下载所有的单独的zip文件并打开了一个额外的几分钟。然而,由于第二两个文件依赖的作用自己,他们不工作没有这个过程。

评论

如果有选择,你选择如何来存储你的文件吗?你面临什么挑战当你收到别人的文件或从硬件?让我们知道下面

试一试,让我们知道你的想法在这里或者离开评论斯蒂芬。




发表与MATLAB®R2014b

|
  • 打印
  • 发送电子邮件

评论

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