Writing IF STATEMENT that omits empty fields in different arrays of a structure

1 view (last 30 days)
I need writing an if statement that would exclude empty fields in a structured array (pictured attached). I am to make use of non-empty fields of M.id, M.xd and M.yd. I came up with this but not working:
for i=1:1:n % n is 100
if ~isempty M(i) % this is where my problem lies
for z=1:t % t is 5
min_dis_local=inf;
distanceL=sqrt( (S(i).xd-(M(z).xd) )^2
end
end
end
I got this error instead:
Error using isempty
Not enough input arguments.

Answers (1)

Dyuman Joshi
Dyuman Joshi on 25 Jan 2023
Edited: Dyuman Joshi on 25 Jan 2023
You need to use () with isempty, otherwise it would assume the input to be a string array
y = [];
isempty(y)
ans = logical
1
isempty y
ans = logical
0
%even though x is not defined, it returns 0 when checked with isempty
isempty x
ans = logical
0
When you add ~ operator before isempty without (), it will through you an error, which is what you encountered
~isempty y
  5 Comments
Ayobami Meadows
Ayobami Meadows on 29 Jan 2023
Index exceeds the number of array elements (127)
Error in Demo_code (line 54) if ~isempty(M(i))

Sign in to comment.

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!