簡體   English   中英

使用nctoolbox在matlab for循環中獲取文件列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM