Determine if variable name exists in netcdf file.

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.

 Accepted Answer

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)

More Answers (1)

Hello Jason
I have the same problem, can you help me on this please.

1 Comment

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.

Sign in to comment.

Products

Tags

Asked:

on 27 Jul 2012

Commented:

on 23 Jul 2020

Community Treasure Hunt

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

Start Hunting!