还记得今年数学建模的B题么,面对一个文件夹下的大量图片数据,很多人写了几百行重复的代码区读取各个图片,其实我们可以用dir函数获取此文件夹下的文件名,然后加以筛选,就可以批量获取我们需要的文件名,进而读取数据。
今天大家可以先百度搜索关键字“MATLAB
一般的用法则为strnam
path是你想要获取的文件夹路径,*是通配符,#是你想获取的文件类型,比如jpg
例子说明:本例是读取deal文件夹下所有jpg图片文件的数据,存储于元胞中。
clc,clear,close all
finf = dir('deal\*.jpg');
n = length(finf);
data = cell(n,1);
for k=1:n
filename = ['deal\',finf(k).name];
data{k} = importfile(filename);
end
第二行功能为返回deal文件夹下所有后缀名为jpg文件的属性。
whos finf
Name Size Bytes Class Attributes
finf 86x1 32378 struct
finf =
86x1 struct array with fields:
name
date
bytes
isdir
datenum
finf是一个结构体数组,包含的deal下86个jpg文件的名称、修改时间、大小、是否文件夹等属性。
第三行为获取数组的大小。
第四行创建n*1的元胞。
第6行构造第k个文件的位置(合并文件路径和文件名)
第7行调用importfile函数读取该文件的数据。(importfile函数属于import tool自动生成,生成方法本节暂不做说明)
The End:
关注NewCloudTech微博,每日更新编程知识用法,提高编程水平,就从关注NewCloudTech开始!