遍历E:\mateorologicalMATLAB\SPEIresults\monthlySPEI文件夹下的所有excel文件,数据在sheet'SPEI'中,我希望将结果保存至E:\mateorologicalMATLAB\SPEIresults\monthlySPEI\result文件夹下创建同名文件中
时间: 2023-06-30 09:22:06 浏览: 59
好的,你可以按照以下步骤实现:
1. 设置文件夹路径和保存结果的文件夹路径:
```
data_folder = 'E:\mateorologicalMATLAB\SPEIresults\monthlySPEI';
result_folder = 'E:\mateorologicalMATLAB\SPEIresults\monthlySPEI\result';
```
2. 获取文件夹中所有的Excel文件名:
```
file_list = dir(fullfile(data_folder, '*.xlsx'));
```
3. 遍历所有Excel文件,读取数据并计算月平均值,然后将结果保存到同名文件中:
```
for i = 1:length(file_list)
file_name = file_list(i).name;
disp(['Processing file: ', file_name]);
% 读取数据
data = xlsread(fullfile(data_folder, file_name), 'SPEI');
% 计算月平均值
date_num = datenum(data(:, 1), data(:, 2), 1);
[~, ~, idx_month] = unique(datestr(date_num, 'yyyy/mm'), 'rows');
data_monthly = accumarray(idx_month, data(:, 3:end), [], @mean);
% 保存结果
result_name = fullfile(result_folder, file_name);
xlswrite(result_name, [datestr(unique(date_num), 'yyyy/mm'), data_monthly]);
end
```
这将遍历所有Excel文件,并按照上面的方法计算月平均值并保存结果到result文件夹中同名的Excel文件中。注意,这里假设每个Excel文件都有一个名为“SPEI”的工作表,你可以根据实际情况修改xlsread函数和sheet名称。另外,如果你的Excel文件包含其他格式的日期,你需要修改datenum函数和datestr函数的格式字符串。
阅读全文