爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5075|回复: 4

matlab批量读nc

[复制链接]

新浪微博达人勋

发表于 2014-4-16 14:05:17 | 显示全部楼层 |阅读模式
GrADS
系统平台:
问题截图: -
问题概况: 我理解MATLAB批量读nc数据,得到的矩阵应该是五维的,点*点*层数*天数*年份,可是我实际得到的是个4维数据,不知道哪里出错了,还望大家看到后帮忙改正,谢谢!
我看过提问的智慧: 看过
自己思考时长(天): 2

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x

clc;  %清屏
clear; %清空
datadir='E:\nc\'; %指定批量数据所在的文件夹
filelist=dir([datadir,'*.nc']); %指定批量数据的类型
a=filelist(1).name; %查看你要读取的文件的编号。filelist(1).name在window下为第一个标号数据
b=filelist(2).name; %查看你要读取的文件的编号。filelist(2).name在window下为第二个标号数据
k=length(filelist);
for s=1:k
  filename=[datadir,filelist(s).name];
  ncid=netcdf.open(filename,'NC_NOWRITE');
  airData  = ncread(filename,'air');
  netcdf.close(ncid);   % 关闭文件
end;


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-16 16:32:42 | 显示全部楼层
本帖最后由 沙颖凯 于 2014-11-12 12:20 编辑

LZ要预先分配矩阵airData的大小,然后
temp = ncread(filename,'air');tDIM=size(temp, 4);
airData(:, :, :, (s*(tDIM-1)+1):s*tDIM)=ncread(filename,'air');

不然时间维在循环中会被覆盖。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2014-4-18 11:07:17 | 显示全部楼层
ncread属于高级读法,你先ncdisp或者ncinfo看看你的数据的属性看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-23 10:29:13 | 显示全部楼层
kongfeng0824 发表于 2014-4-18 11:07
ncread属于高级读法,你先ncdisp或者ncinfo看看你的数据的属性看看

好的   多谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-23 10:30:39 | 显示全部楼层
沙颖凯 发表于 2014-4-16 16:32
LZ要预先分配矩阵airData的大小,然后

airData(:, :, :, :, s)=ncread(filename,'air');

恩恩    应该是这样    多谢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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