我的土豆在哪里 2023-06-25 01:44 采纳率: 42.9%
浏览 46
已结题

matlab循环处理nc数据遇到问题

大家好。我想批量读取不同年份的不同月份的数据,但是我发现代码只能读取某一年的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

这是我的数据情况:

img

  • 写回答

8条回答 默认 最新

  • PhoenixRiser 2023-06-25 10:41
    关注

    发下文件吧还是

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 7月5日
  • 已采纳回答 6月27日
  • 创建了问题 6月25日