Matlab阅读大型netcdf文件

时间:2016-08-18 16:24:09

标签: matlab netcdf

我有一个17G netcdf文件,我正在尝试用于分析。 netcdf文件中的每个变量都设置为:variable(x,y,z,time)。我想一次读入并分析一次“时间”的变量,以便在Matlab中进行分析。换句话说,我想一次使用所有的x,y和z点。在过去,我有较小的文件,因此读取变量已经设置为

fid=netcdf.open('filename/location','NC_NOWRITE');
var_id=netcdf.inqVarID(fid,'varname');
var=netcdf.getVar(fid,var_id);

当读入变量时,是否可以使用一个时间步读入变量? (语法不正确)它基本上看起来像

var=netcdf.getVar(fid,var_id,[:,:,:,time_index]);

1 个答案:

答案 0 :(得分:0)

是的,matlab netcdf命令支持这一点,几乎就像你编写它一样:

data = netcdf.getVar(fid,var_id,var_index,var_length)

有关详细信息,请参阅matlab documentation。您也可以使用high-level matlab commands代替netCDF库函数。 例如,如果varname是100x4数组,则可以使用以下命令获取第7行:

% read 4 columns from 1 row of data starting at row 7, column 1
v = ncread('filename/location','varname',[7 1],[1 4]);

或四维数组,如问题:

% read all data from dim. 1-3 at dim 4 = 27
v = ncread('filename/location','varname',[1 1 1 27],[Inf Inf Inf 1]);