Determine if variable name exists in netcdf file.

14 ビュー (過去 30 日間)
Jason
Jason 2012 年 7 月 27 日
コメント済み: Vijay Sagar 2020 年 7 月 23 日
I need to check if a variable name exist in a netcdf file. Is there a way to do this without creating a list variable names and searching it entry by entry in a loop?
I think I can catch it with the warnings produced:
>> a=netcdf.inqVarID(ncid,'u_d')
Error using netcdflib
The NetCDF library encountered an error during execution of 'inqVarID' function - 'Variable not found (NC_ENOTVAR)'.
Error in netcdf.inqVarID (line 22)
varid = netcdflib('inqVarID', ncid, varname);
but Im not familiar with warnings.

採用された回答

Jason
Jason 2012 年 7 月 27 日
Not sure if this is the best way but it works and its fast:
file = 'C:\Users\Jason\Documents\MATLAB\sgData\sg135\p1350050.nc';
ncid = netcdf.open(file,'nowrite');
str = 'good';
var = 'u_da';
try
ID = netcdf.inqVarID(ncid,var);
catch exception
if strcmp(exception.identifier,'MATLAB:imagesci:netcdf:libraryFailure')
str = 'bad';
end
end
netcdf.close(ncid)
disp(str)

その他の回答 (1 件)

francisco
francisco 2013 年 5 月 14 日
Hello Jason
I have the same problem, can you help me on this please.
  1 件のコメント
Vijay Sagar
Vijay Sagar 2020 年 7 月 23 日
The above solution by @Jason worked for me. I had a different 'exception' for my files. I have repaced with that after that it worked successfuly for me.

サインインしてコメントする。

タグ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by