0

我有这段代码

sumrain=zeros(881,1121);
run('D:\nctoolbox-nctoolbox-3161fee\setup_nctoolbox.m')
for j=1:m

nc=ncgeodataset(lsf(j,:)); %lsf is a list of file names
dirvar=nc.geovariable('Total_precipitation_surface_1_Hour_Accumulation');
g=dirvar.grid_interop(1,:,:);
dir=dirvar.data(1,:,:);
dir=reshape(dir,[881 1121]);
sumrain=sumrain+dir;
 clear nc dirvar

end

问题是,除非在读取每个文件之前将其激活,否则 nctoolbox 似乎永远无法工作(对我而言)。如果我将运行安装文件的行放在循环中,它可以正常工作,但是代码会很慢。但是当我将运行设置行保持在循环之外时,我收到一个错误:

“警告:netcdf-java cdm 不包含与变量关联的坐标信息。返回 ncvariable 而不是 ncgeovariable 对象。(依赖于坐标信息的方法,如 'grid' 或 'geosubset' 不可用。在 ncgeodataset>ncgeodataset.geovariable 中459 在 ncgeodataset>ncgeodataset.subsref 在 622 在 s4processing 在 16"

我还在我的 startup.m 中添加了运行 setup 函数的行(我每次运行 matlab 时都会看到它被激活),但这也不起作用。

4

1 回答 1

1

您收到的警告不是错误,与setup_nctoolbox. 您只需要运行setup_nctoolbox一次;它调整 Matlab 的路径和 javaclasspath 以包含运行 nctoolbox 所需的依赖项。在循环中多次运行它并没有做任何事情。

该警告只是告诉您正在读取的数据集缺少坐标变量信息。这是数据集的问题,而不是 nctoolbox。

于 2014-08-14T23:16:44.230 回答