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 comentarios

James Tursa
James Tursa el 14 de Mayo de 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 el 14 de Mayo de 2019
Editada: madhan ravi el 14 de Mayo de 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?

Iniciar sesión para comentar.

 Respuesta aceptada

James Tursa
James Tursa el 14 de Mayo de 2019
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

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 14 de Mayo de 2019

Comentada:

el 14 de Mayo de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by