使用nctoolbox获取matlab for循环中的文件列表
我有这段代码使用nctoolbox获取matlab for循环中的文件列表,matlab,for-loop,grib,Matlab,For Loop,Grib,我有这段代码 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
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对象。(依赖坐标信息的方法
例如“网格”或“地理子集”不可用。
在ncgeodataset>ncgeodataset.geovariable中,位于459
在622处的ncgeodataset>ncgeodataset.subsref中
在S4中,在16英寸处进行处理
我还将运行setup函数的行放在startup.m中(我每次运行matlab时都会看到它被激活),但这也不起作用。您收到的警告不是错误,与
设置\u nctoolbox
无关。您只需运行设置\u nctoolbox
一次;它会调整Matlab的路径和javaclasspath,以包含运行nctoolbox所需的依赖项。在循环中多次运行它并没有任何作用g
该警告只是告诉您正在读取的数据集缺少坐标变量信息。这是数据集的问题,而不是nctoolbox的问题