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