Matlab:根据创建日期对文件进行排序

时间:2013-07-30 20:28:45

标签: matlab sorting

我在目录中有一堆文件没有以任何顺序命名。所以当我使用dir函数时,我会按顺序得到它们。但我想按照datenum的顺序阅读这些文件。在dir或任何其他可以完成此任务的功能中是否有选项。

3 个答案:

答案 0 :(得分:6)

您无需按date转换datenum字段。假设您已经拥有datenum,这是dir已经返回的结构中的字段,即如果您使用files = dir(),则files.datenum是转换为双重格式的日期。因此,按日期使用它们只需要:

[~,idx] = sort([files.datenum]);

然后idx包含从最早的files(idx(1))到最新的files(idx(end))的值。如果您想先编辑最新版本,请在'descend'中使用sort()作为选项。

答案 1 :(得分:2)

这是一种解决方法:

files=dir;
valid_file_names= find(~[files.isdir]);
file_date=[files.datenum];
[~, ix]=sort(file_date)
ix=ix(ismember(ix,valid_file_names)); keep index of file names only

     % load...
     for n=1:numel(ix)
         c{n}=your_loading_function(files(ix(n)).name);
     end         

答案 2 :(得分:0)

list = dir('c:\*.*');
[r inx]=sort({list.date});
list = list(inx);