如何在Matlab中打开excel文件,运行代码,然后转到下一个文件并重复执行,直到处理完所有文件?

时间:2019-05-16 21:42:08

标签: matlab

我在单独的excel文件中有多个数据集。我选择包含所有原始数据的excel文件,它读取数据中的峰并将其存储。这些excel文件有数百个。

我需要将峰值数据存储在单个excel文件中,但同时用文件号名称(例如1810992)标记顶部单元格,然后将数据垂直存储在下面的列中。这本身不应该太难。

但是我需要的是该程序转到包含它的文件夹中的下一个excel文件,并重复该过程,但将下一组数据放在下一列中。

我不知道如何打开多个excel文件,或者打开一个excel文件,然后收集经过过滤的数据并将其存储在下一列中,然后打开下一个excel文件并重复该过程,例如for循环。

这是代码的作者写的,有一个UI,当您单击打开的文件夹时,此代码将运行。

[h.inputFileName,h.directory, ~]=uigetfile('*.*');

tic
file = [h.directory,'\',h.inputFileName]; %combines directory and file 
name
[~,sheets] = xlsfinfo(file);

tmp_dat=csvread(file) ; 
h.time=tmp_dat(:,1) ; 
h.rawData1=tmp_dat(:,7) ;
h.rawData2=tmp_dat(:,4) ;

同样是针对一个excel文件,我需要它来重复该过程,但无需我亲自点击。要遍历整个文件夹,直到已读取所有excel文件。

1 个答案:

答案 0 :(得分:0)

您可以使用dir命令列出当前目录中的文件。 您还可以像下面的代码一样添加过滤器。

dir('*.xls*' )

它将列出当前目录的所有Excel文件(xls和xlsx)。然后,您必须进行for循环才能重复该过程。

在您发布的程序中,您使用的是csvreadxlsread可能更合适。