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