switches with the < and > operators
2 views (last 30 days)
Show older comments
Is there a way to use the switch construct by checking with operators like > and < and not doing an equality check?
for example :
x = 12;
switch x
case x < 3
% statementents
case x >= 3 && x < 10
% statements
case x >= 10 && x < 20
% statements
otherwise
% statements
end
Why does it always execute the statements in the otherwise section? What's wrong?
0 Comments
Answers (1)
Cris LaPierre
on 17 Jul 2023
A switch statement executes the first case that is true. Try this instead.
x = 12;
switch true
case x < 3
% statementents
case x >= 3 && x < 10
% statements
case x >= 10 && x < 20
% statements
otherwise
% statements
end
2 Comments
Steven Lord
on 17 Jul 2023
Or discretize your data and then switch on the bin into which your data falls.
x = 12;
whichBin = discretize(x, [-Inf 3 10 20 Inf])
x = 42;
whichBin = discretize(x, [-Inf 3 10 20 Inf])
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!