If statement for cells

14 views (last 30 days)
MarshallSc on 11 Jul 2021
Commented: Star Strider on 12 Jul 2021
Hi, I have 3 different cell arrays like below - same size (let's call them A, B and C):
That I need to evaluate in an if statement in a for loop. But the final result gives me several empty numeric array in couple of the cells. The code is:
for i=1:4
for j=1:4
for k=1:10
for r=1:10
if ((abs(A{i,j}(k,r)))/(abs(C{i,j}(k,r)))<1) && ((abs(A{i,j}(k,r)))/(abs(B{i,j}(k,r)))<1)
A_num{i,j}{k,r}='Point is stable: Category 1 is assigned';
elseif ((abs(A{i,j}(k,r)))/(abs(C{i,j}(k,r)))>1) && ((abs(A{i,j}(k,r)))/(abs(B{i,j}(k,r)))>1)
A_num{i,j}{k,r}='Point is unstable';
For example, one of the cell array result is like bleow:
I checked all the components of the original cell arrays and none of them are zero or inf. Am I doing something wrong here?

Accepted Answer

Star Strider
Star Strider on 11 Jul 2021
The && are ‘short circuit’ AND operators. The second expression (after the &&) will not be evaluated if the first expression is false.
If you want to evaluate both of them, just use & instead.
Star Strider
Star Strider on 12 Jul 2021
My pleasure!
If my Answer helped you solve your problem, please Accept it!

Sign in to comment.

More Answers (0)


Find more on Loops and Conditional Statements in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!