Finding remaining numbers in logical indexing?

How would you find how many numbers in an array do not meet any of the previous conditions without using else if statements?
I want to return all the numbers that do not meet the previous conditions listed, but I can't figure out how to do that without using if else statements.
find=length<1;
disp('stubby')
sum(find(:) == 1)
find=(length < 3) & (max_width_head > mean_width_neck*2);
disp('mushroom')
sum(find(:) == 1)
find=max_width_head>=mean_width_neck;
disp('long thin')
sum(find(:) == 1)

2 Kommentare

James Tursa
James Tursa am 14 Mai 2019
You are really going to confuse your readers by using the names "find" and "length" as variable names ... they shadow important MATLAB functions. I would advise using different names.
madhan ravi
madhan ravi am 14 Mai 2019
Bearbeitet: madhan ravi am 14 Mai 2019
First and foremost your variable naming is totally a bad idea and second of all what is the input and what output are you expecting?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

James Tursa
James Tursa am 14 Mai 2019

0 Stimmen

E.g.,
find1 = length<1;
:
find2 = (length < 3) & (max_width_head > mean_width_neck*2);
:
find3 = max_width_head>=mean_width_neck;
sum(~(find1 | find2 | find3)) % the number that don't match any of the previous conditions

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by