我正在使用matlab中的ncread
函数读取多个netcdf文件。
由于我不知道的原因,某些文件(由以下FILEPATH
描述)未正确读取且ncread
崩溃,从而产生错误消息:
Error using internal.matlab.imagesci.nc/openToRead (line 1259)
Could not open FILEPATH for reading.
Error in internal.matlab.imagesci.nc (line 121) this.openToRead();
Error in ncread (line 53)
ncObj = internal.matlab.imagesci.nc(ncFile);
Error in MY_FUNCTION (line 102)
Lon = nanmean(ncread(FILEPATH,'Lon'));
如果您知道测试netcdf文件而不会崩溃的方法,或者您了解产生此错误的原因,那么我们将不胜感激。
答案 0 :(得分:1)
标准方法是在try
/ catch
语句中包含可能失败的语句,以在中断函数执行之前拦截抛出的异常,如下所示:
function [out1, out2, ...] = MY_FUNCTION(arg1, arg2, ...)
%//Initial code
try
Lon_data = ncread(FILEPATH,'Lon');
catch ME
warning('MY_FUNCTION:ncread', 'Could not load because <<%s>>',ME.message);
%//Do something to recover from error
%//Return from function if recover not possible
end;
Lon = nanmean(Lon_data);
%//Rest of the code
end
请注意,上面函数签名中的...
不是有效的MATLAB语法,而是说“这里有一些输入和输出,我不知道它们是如何声明的”;请用适当的进/出声明代替。