Error in repetition of for loop

1 visualización (últimos 30 días)
Fu Xiangli
Fu Xiangli el 7 de Sept. de 2016
Editada: mbonus el 8 de Sept. de 2016
Hi guys. I have a code below:
if p && u <= length(r) && r(p) > r(n) && r(u) >= r(p);
is_upslope = true;
However, when my u is greater than the length(r), it still gives me is_upslope = true. May I know what is the problem? Thanks
  1 comentario
per isakson
per isakson el 7 de Sept. de 2016
I cannot reproduce your result. What values do your variables have?

Iniciar sesión para comentar.

Respuestas (1)

mbonus
mbonus el 7 de Sept. de 2016
Editada: mbonus el 7 de Sept. de 2016
I believe that your second test of <=length(r) is being tested against a logical 1. This is due to the fact that p && u is being evaluated first which returns a logical 1 assuming they are both nonzero. so the test actually ends up seeing
1 <= length(r) ...
instead you need to format it like this: (also parenthesis while not required make it easier to read)
if (p <= length(r)) && (u <= length(r)) && (r(p) > r(n)) && (r(u) >= r(p))
  2 comentarios
mbonus
mbonus el 8 de Sept. de 2016
Editada: mbonus el 8 de Sept. de 2016
Oh wow I didn't realize MATLAB did it like that, probably because I always use parenthesis, thank you.

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by