exist(obj.struct.var) always returns 0 regardless if the var exists or not. Answer: If you're not sure if the obj variable is a struct or has a field named struct, you can call isfield twice. y = isfield(obj, 'struct') && isfield(obj.struct, 'var'); The first isfield call will return false if obj is not a struct or is a struct that does not have a field named struct. Only if the first isfield call returns true will the short-circuit && operator cause the second isfield call to be evaluated. In fact, that documentation page includes an example (Change Structure Field Value) that is somewhat related to this question. obj = 42; % Not a struct y1 = isfield(obj, 'struct') && isfield(obj.struct, 'var') % false obj = struct('abc', 'def'); % struct but without the correct field y2 = isfield(obj, 'struct') && isfield(obj.struct, 'var') % false obj = struct(
Welcome to top Matlab Articles Provider in World. We are a team of Matlab Experts available online 24x7. Get help in your Matlab Projects. matlabsolutions.com