我有一些图像需要加载和处理。这些图像命名如下:image1.jpg
,image2.jpg
,image3.jpg
等。当我处理每个图像时,我想将输出存储在一个数组中。这个数组中的索引对应于图像名称很重要。例如,数组元素5
中的值应该对应于image5.jpg
。按文件名中的数字顺序读取文件
问题是,当我搜索这些文件并加载它们时,它们会严格按字母顺序加载,而不是数字加载。所以,因为我有一个hunder图像,前几个要加载的是:image1.jpg
,image10.jpg
,image100.jpg
,image101.jpg
,image102.jpg
等等。因此,数组元素5
将对应于image102.jpg
。
我的问题是:我如何加载文件中的数字顺序文件,而不是默认的顺序?
这里是我的代码来获取文件名:
my_dir = dir('C:/MyDir');
image_files = {my_dir(~[my_dir.isdir]).name};
disp(image_files);
这给输出:
'image1.jpg' 'image10.jpg' 'image100.jpg' 'image101.jpg' 'image102.jpg' .....
油滑使用'cellfun',毫无疑问的。 +1但我喜欢'regexp'进行模式匹配。 – chappjc 2014-10-20 02:02:28