Need Conditional ElseIf statement

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...

 采纳的回答

Doug Hull
Doug Hull 2012-10-12
编辑:Doug Hull 2012-10-12
(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 个)

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

类别

帮助中心File Exchange 中查找有关 Debugging and Improving Code 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by