Effacer les filtres
Effacer les filtres

Need Conditional ElseIf statement

2 vues (au cours des 30 derniers jours)
Sudharsan
Sudharsan le 12 Oct 2012
w=[200 205 188;169 255 156;192 168 172]
if(0<w(5)<255)
x=1;
else
x=2;
end
for this kind of code i'm getting x value as 1.can anyone help me to identify what mistake i have made...

Réponse acceptée

Doug Hull
Doug Hull le 12 Oct 2012
Modifié(e) : Doug Hull le 12 Oct 2012
(0<w(5)<255)
You probably mean this:
((0 < w(5)) & (w(5) < 255))
Evaluating yours left to right:
0<w(5)<255
TRUE < 255
TRUE
  1 commentaire
Sudharsan
Sudharsan le 12 Oct 2012
Thank You Doug Hull :)

Connectez-vous pour commenter.

Plus de réponses (1)

Matt Kindig
Matt Kindig le 12 Oct 2012
Matlab won't correctly parse the 0<w(5)<255 statement as you intend. (Instead, it will evaluate (0 < w(5)) first (which returns a logical value 0 or 1). Matlab then evaluates (0 or 1) < 255, which is always true, so x=1 for all values of w.
Instead, use
if (0 < w(5)) && (w(5) < 255),
x= 1;
else
x=2;
end
  1 commentaire
Sudharsan
Sudharsan le 12 Oct 2012
Thank You Matt Kindig :)

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by