[英]Using nctoolbox for a list of files in a matlab for-loop
我有這段代碼
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 In s4processing中在16“
我還在startup.m中添加了運行設置功能的行(我每次運行matlab時都會看到它被激活),但這也不起作用。
您得到的警告不是錯誤,與setup_nctoolbox
沒有任何setup_nctoolbox
。 您只需要運行一次setup_nctoolbox
。 它將調整Matlab的路徑和javaclasspath以包括運行nctoolbox所需的依賴項。 在循環中多次運行它無濟於事。
該警告只是告訴您正在讀取的數據集缺少坐標變量信息。 這是數據集的問題,而不是nctoolbox的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.