本文主要是介绍matlab 2011b 更新netcdf文件读取命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
方法3:matlab 2011b刚加进来的,果然非常简便!
New High-Level NetCDF Functions
主要命令有
nccreate
ncdisp:display contents of netCDF file
ncinfo: return information about netCDF file
ncread: Read data and attributes from netCDF file
最常用的肯定是 ncdisp 和ncread咯
variable = ncread('filename.nc','name_of_variable');
or 截取部分
variable = ncread('filename.nc','name_of_variable',[start position],[size of matrix],[step spacing])
此外,ncread会自动把filling value 设置为nan,把factor乘进去,把offset加进去
这样,如果是符合规范的netcdf文件,不需要做各种麻烦事,就可以自动得到结果了
如果不符合规范,还是用low leve的方法一来控制比较靠谱
例如 nc中sst变量为 360x180x100
截取所有
sst = ncread('filename.nc','sst',[1 1 1],[inf inf inf]);
size(sst)
ans =
360 180 100
截取
lon = ncread('filename.nc','lon',[10],[50],[5]);
size(lon)
ans =
50 1
看来第三种方法很是方便
既能设置inf,也就是有多少读多少,跟数据里end用法一样
有可以设置步长
而且,设置startpoint也比方法1好理解
方法一的startpoint,实际上是需要数据位置的前一位
比如需要第10个元素,start那里要写9
而方法3,从第几个开始,就写几,容易理解多了
方法1:Low Level Reading Method
fid = netcdf.open('filename.nc','nc_nowrite');
vid = netcdf.inqVarID(fid,'name_of variable');
variable = netcdf.getVar(fid,vid);
截取部分变量
variable = netcdf.getVar(fid,vid,[ start position],[size of matrix]);
netcdf.close(fid);
方法2:老办法
f = netcdf('filename.nc','nowrite');
variable = f{'name_of_variable'};
close(f)
这篇关于matlab 2011b 更新netcdf文件读取命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!