How to exist(obj.struct.var)?

Technical Source
1 min readJul 29, 2023

--

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('struct', struct('var', 'std'));
y3 = isfield(obj, 'struct') && isfield(obj.struct, 'var') % true

for other assignment help please visit this site:

  1. matlabhelpers
  2. matlabsolutions
  3. programmingshark

SEE COMPLETE ANSWER CLICK THE LINK

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet