我有一个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]);
答案 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]);