数据每个月的天数都不一定满,太繁琐了,有没有,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