多年逐天的多个excal数据月平均

数据每个月的天数都不一定满,太繁琐了,有没有,matlab代码可以批量处理。

可以批量处理 * 通配名称


%读取路径下所有xls
files = dir('*.xlsx');
filesnames={files.name};
icount = size(files,1);
A_all=[];
for i=1:1:icount
    %读取一个xls
   A= xlsread(filesnames{1,i});
   
    %如果不是日期标签就存起来
    A_all=[A_all,A];
end

你的数据文件是按天还是按月存放的?发个格式才好代码实现啊

下面是一个可以求多年逐天的多个Excel数据月平均值的MATLAB代码示例,望采纳:

% 读取所有的Excel文件
file_names = dir('*.xlsx');
% 循环每个Excel文件
for i = 1:length(file_names)
  % 读取Excel文件
  data = xlsread(file_names(i).name);
  % 计算每一天的月平均值
  data_monthly = mean(data, 2);
  % 将计算结果保存到新的Excel文件中
  xlswrite(sprintf('monthly_%s', file_names(i).name), data_monthly);
end

在这段代码中,第一行用于读取当前目录下所有的Excel文件,第三行循环每个Excel文件,第五行读取Excel文件中的数据,第七行计算每一天的月平均值,第九行将计算结果保存到新的Excel文件中。

基于在matlab计算多个excel表格数据平均数-以35年即35张excel表格为例
如有帮助,望采纳

filePath='C:\Users\smv16\Desktop\smv\average\频数\Dry-pre-average'; %获取excel文件存储目录getFileName=ls(strcat(filePath,'\*.xl*'));  %获取所选目录下的文件名

fileName = cellstr(getFileName); %将string数组转为cell数组

if  is equal(getFileName,'')%防止选择空文件夹

msgbox('no excel file in the path you selected');                                                    else

SUM=zeros(232,102);

for i=1:

length(fileName)                                       %获得文件总数

[excelData,str] = xlsread(strcat(filePath,'\',fileName{i}));%读取excel名字

    SUM=SUM+excelData;

end

SUM=round(SUM./35);

xlswrite('Dry-pre-average.xlsx',SUM)

end