对于经常使用数采、数字万用表以及示波器进行数据采集的同学来说,需要经常把数据导入到Matlab等软件中进行处理。当采集的数据量十分庞大时,依次手动导入是一件令人头疼的事,如果能用代码进行批量导入将会为我们省去不少时间。目前网上较为常见的一种方法是用Matlab中的eval函数,将数据文件依次赋予给Matlab中的特定变量以进行数据的导入。不过,eval函数功能虽然强大,但因为其运行效率低下,可读性较差,已成为了Matlab官方不推荐使用的一种函数。为了快速高效地导入如.csv或其他格式的数据文件,此处将importdata函数与元胞数组相结合,提出一种将命名含有一定规则的数据文件依次导入元胞数据的简单代码实现,希望能对有相关需求的朋友提供一丝帮助。现举例如下:
图中的21个数据均为规则命名的文件,格式为“LtoRDP0219”+"编号",所以可以按照以下的逻辑进行批量导入(Matlab中的工作文件目录要修改为数据所在的目录):
A = cell(21,1)
for i = 1:9
A{i} = importdata(['LtoRDP02190',num2str(i),'.csv'])
end
for i = 10:21
A{i} = importdata(['LtoRDP0219',num2str(i),'.csv'])
end
此种方法的核心思想就是将规则命名的文件名中的编号进行变量循环,把这种命名逻辑调整为一种Matlab可以识别的格式,然后将数据赋值给特定元胞数组,可为数据导入的工作省去不少时间。