如何使用matlab获取不同excel文件的平均值以及如何编写它们

时间:2014-05-16 15:10:20

标签: excel matlab

例如,我有12120100.xls到12120123.xls的文件名。我需要将这些文件的所有数据的平均值放在一起,并且需要使用不同的名称分别编写(xlswrite)这些文件。文件名12120100表示​​12 =年份,12 =月,01 =日,00 =小时。这里我想给年,月,日作为输入,小时(00到23)在代码中循环使用,从小时开始

%%以下是我使用的代码

clc;                
close all;              
clear all;                                                           
d='12120722.xls';   % file which i want to read ,avg and xlswrite      
dat=xlsread(d,'F3:AH3602');        
size(dat)            
avg=zeros(1,29);             
for i= 1:29           
   avg(i)=mean(dat(1:3600,i));            
end        
avg           
newfname=strcat(d(1:8),'Averaged values','.xls');             
xlswrite(newfname,avg,' F1:AH1');              
h=msgbox('Averaged complete')                
close(h);                

以上代码仅适用于一个文件。我希望一次运行22个文件的代码

非常感谢

1 个答案:

答案 0 :(得分:0)

将您要处理的所有Excel文件放在一个文件夹中,然后从该文件夹中运行代码。

fname=dir('*.xls'); % read in all the file names
for f=1:length(fname)
    d=fname(f).name;   % file which you want to read in the current iteration
    d
    dat=xlsread(d,'F3:AH3602');
    size(dat)
    avg=zeros(1,29);
    for i= 1:29
        avg(i)=mean(dat(1:3600,i));
    end
    avg
    newfname=strcat(d(1:8),'Averaged values','.xls');
    xlswrite(newfname,avg,' F1:AH1');
    h=msgbox('Averaged complete')
    close(h);

end