在matlab中如何读取nc文件?

如题所述

首先,nc1的这个“3”是netcdf.open函数返回的ncid;Matlab自带、与NETCDF相关的 Low-Level 函数中很多以 id 来识别文件(ncid)、维度(dimid)、变量(varid)。在help中搜索 “netcdf” 可以找到所有相关函数。\x0d\x0a\x0d\x0a其次,仅需要从nc文件中读取数据时,不必调用这些 Low-Level 函数,一般使用 ncread,例如最简单的 u = ncread('uwnd.2010.nc', ‘u’); 这个命令将从你的nc文件中读取变量“u”。详细说明建议看help:help ncread。\x0d\x0a\x0d\x0a最后,如上面建议的,简单的工作中,尽量使用 ncread、ncwrite、 ncreadatt 等函数。一方面,这些函数使用时非常方便、直观;另一方面,使用那些 netcdf.××× 形式的 “Low Level” 函数前,最好先熟悉一下 NetCDF C Interface,否则可能会出现一些问题。例如使用 ncread 可以直接使用文件名、变量名读取变量,但 “Low Level” 函数则需要:获得ncid(ncid = netcdf.open(‘×××’))、获得变量id(varid = netcdf.inqVarID(ncid,‘×××’))、读取变量(data = netcdf.getVar(ncid,varid))三步。\x0d\x0aPS:\x0d\x0aMatlab从2008b开始,就开始自带netcdf接口了(当时是netcdf-3),并且跟随netcdf标准的演变,在之后的版本中添加了对netcdf-4、OpenDAP等的支持,并加入了一些符合Matlab习惯的函数。\x0d\x0a\x0d\x0a因此如果使用的是2008b之前的版本,需要MEXNC、SNCTOOLS等外部接口;而2008b-2010b则不必依赖外部函数;最后如果是2011a及更新版本的,则可以直接使用“ncread”、“ncwrite”等非常方便的函数
温馨提示:答案为网友推荐,仅供参考