大家好。我想批量读取不同年份的不同月份的数据,但是我发现代码只能读取某一年的end_month的数据。也就是说不管我怎么修改输入年份,读取出来的结果是重复读取“某一年 ”的end_month的结果。比如下面我循环读取了三年(1974-1976年)的数据,那么出来的结果t_2d矩阵里面是一组结果重复记录了3遍。
请问各位问题出在哪里?之前循环月份的时候没问题,现在加入循环年份后就出现这个问题了。我怀疑这个“某一年”是1970年。
clc
clear all;
% 设置循环参数
start_month = 05;
end_month = 08;
start_year = 1974;
end_year = 1976;
% 存储温度指标的变量
avg_t_daily_new = [];
% 循环读取和处理多个nc图像
for year = start_year:end_year
for month = start_month:end_month
% 构建nc图像文件名
file_name = sprintf('F:\\TPHWL6Hrly\\clmforc.cruncep.V7.c2016.0.5d.TPQWL.%04d-%02d.nc',year,month);
% 读取温度数据
t = ncread(file_name, 'TBOT');
LONGXY = ncread(file_name, 'LONGXY');
LATIXY = ncread(file_name, 'LATIXY');
% 获取变量 t 的尺寸信息(依次为:经度、纬度、时间),并将其分别存储在自定义变量 num_lon、num_lat 和 num_time
[num_lon, num_lat, num_time] = size(t);
% 重塑矩阵为二维
t_2d = reshape(t, [], num_time);
avg_t_daily_new = [avg_t_daily_new, t_2d];
end
end
这是我的数据情况:
