鱼C论坛

 找回密码
 立即注册
查看: 2661|回复: 2

[已解决]matlab代码

[复制链接]
发表于 2023-4-29 11:33:24 | 显示全部楼层    本楼为最佳答案   
根据你提供的代码和nc描述信息,可以看出数据中的时间变量time的范围是从1297320到1954776,表示从1800年到2019年的小时数。因此,可以通过以下代码来获取数据的时间范围并限制在1948年以后的数据中:
  1. time_units = ncreadatt(filename, 'time', 'units');
  2. hour_str = regexp(time_units, '\d+', 'match');
  3. time_hours = str2double(hour_str{1}) / 24;

  4. start_year = str2double(regexp(time_units, '\d{4}', 'match'));
  5. start_time = (datenum(1948,1,1) - datenum(start_year,1,1)) * 365 * time_hours + 1;
  6. end_time = length(time);
  7. if time(end_time) > datenum(2019,12,31)*24 % 防止超出时间范围
  8.     end_time = find(time < datenum(2019,12,31)*24, 1, 'last');
  9. end

  10. time = time(start_time:end_time);
  11. air = air(:, :, start_time:end_time);
复制代码

这里使用了MATLAB中的datenum函数来将日期转换为从公元0年1月1日到该日期的天数,从而可以计算出从1800年到1948年的小时数,然后再根据时间范围限制数据的选择。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-3 05:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表