Home size of struct field from ncinfo

# size of struct field from ncinfo

shamalaia
1#
shamalaia Published in 2017-12-06 20:26:30Z
 I want to get the size of a certain field inside a structure. For example the size of the field Name inside the field Dimensions of the struct obtained from ncinfo: finfo = ncinfo('example.nc'); finfo.Dimensions.Name >>ans = x ans = y ans = z  Just using size causes an obvious error: size(finfo.Dimensions.Name) Error using size Too many input arguments. How can I do it in an alternative way? Also, I would like to save the content of finfo.Dimensions.Name in a separate array or struct. But I get a similar error. For example: a.b=finfo.Dimensions.Name  returns the error: Illegal right hand side in assignment. Too many elements.
gnovice
2#
 Your problem is that the Dimensions field in the structure returned by ncinfo is itself an array of structures, and when you access a field of a structure array it returns a comma-separated list of values, one for each array element. You need to collect these values, for example in a cell array: nameCell = {finfo.Dimensions.Name}; % Now a 1-by-3 cell array of names  If you just want to know the number of dimensions, you can check the size of the Dimensions field like so: N = size(finfo.Dimensions); 
 Per the documentation for ncinfo, Dimensions is an array of structures, so you need to be more explicit with what you want to do. If you want the size of the 'Dimensions' field then that is your query: S.Dimensions(1).Name = 'x'; S.Dimensions(2).Name = 'y'; S.Dimensions(3).Name = 'z'; size(S.Dimensions)  Which returns: ans = 1 3