在MATLAB中按顺序读取所有文件
我正在尝试使用此代码读取MATLAB文件夹中的所有图像在MATLAB中按顺序读取所有文件,matlab,image-processing,Matlab,Image Processing,我正在尝试使用此代码读取MATLAB文件夹中的所有图像 flst=dir(str_Expfold); 但它向我展示了这样的输出。这不是我想要的顺序。 有谁能告诉我如何按顺序阅读所有这些内容吗? 要给出downmark,也请解释其原因。在Matlab论坛中,没有指定dir命令输出排序,但它似乎是纯字母顺序(我的意思是它不首先考虑排序器文件名)。因此,您必须手动对名称进行排序。以下代码取自(您可能希望更改文件扩展名): 按字母顺序,depth10位于depth2之前。如果可能,在创建string
flst=dir(str_Expfold);
但它向我展示了这样的输出。这不是我想要的顺序。
有谁能告诉我如何按顺序阅读所有这些内容吗?
要给出downmark,也请解释其原因。在Matlab论坛中,没有指定dir命令输出排序,但它似乎是纯字母顺序(我的意思是它不首先考虑排序器文件名)。因此,您必须手动对名称进行排序。以下代码取自(您可能希望更改文件扩展名):
按字母顺序,
depth10
位于depth2
之前。如果可能,在创建string+num
类型文件名时,请使用固定宽度的数字部分(例如depth01
,depth02
)-这样可以避免排序问题
但是,如果您一直使用现有的文件名,并且知道文件名模式,那么您根本就不用麻烦使用dir
,而是首先按照正确的顺序创建文件名列表:
for n = 1:50
fname = sprintf('depth%d.png',n);
% code to read and process images goes here
end
我们看不到你上传的图像,但我猜它们只是图像文件名。是吗?是的,它是从depth1、depth2…开始的图像文件。。。。。。depth50最初位于文件夹中。但是当我在Matlab中读取文件夹时,顺序是这样的depth1,Depth10,depth11,depth12…depth19,depth2,depth21,.depth29,depth3….然后您必须对名称进行排序,因为您无法更改dir输出。看看这个:我没有投反对票,但很可能是因为你上传的图片。
for n = 1:50
fname = sprintf('depth%d.png',n);
% code to read and process images goes here
end