3

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

4

3 回答 3

5

您不需要将date字段转换为datenum. dir假设您已经拥有 datenum,它是结构中的一个字段,files = dir()已由files.datenum. 因此,要按日期使用它们,您只需要:

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

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

于 2013-07-30T20:40:27.567 回答
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         
于 2013-07-30T20:36:27.360 回答
0
list = dir('c:\*.*');
[r inx]=sort({list.date});
list = list(inx);
于 2013-08-23T17:26:42.063 回答