在 MATLAB 中按顺序读取所有文件

Reading all the files in sequence in MATLAB

我正在尝试使用此代码读取 MATLAB 文件夹中的所有图像

flst=dir(str_Expfold);

但它向我显示了这样的输出。这不是我想要的顺序。 谁能告诉我如何按顺序阅读所有这些内容?

给差分,也请说明原因

从 Matlab 论坛上看,dir 命令输出排序没有指定,但它似乎是纯粹的字母顺序(纯粹是我的意思是它不首先考虑排序器文件名)。因此,您必须手动对名称进行排序。以下代码摘自this link(你可能想更改文件扩展名):

list = dir(fullfile(cd, '*.mat'));
name = {list.name};
str  = sprintf('%s#', name{:});
num  = sscanf(str, 'r_%d.mat#');
[dummy, index] = sort(num);
name = name(index);

按字母顺序 depth10depth2 之前。如果可能的话,在创建 string + num 类型的文件名时,使用固定宽度的数字部分(例如 depth01depth02)——这样可以避免排序问题。

如果您受困于已有的文件名,并且知道文件名模式,那么您根本不用费心使用 dir,而是首先以正确的顺序创建您的文件名列表:

for n = 1:50
   fname = sprintf('depth%d.png',n);
   % code to read and process images goes here
end