Effacer les filtres
Effacer les filtres

switches with the < and > operators

2 vues (au cours des 30 derniers jours)
Francesco Pio
Francesco Pio le 17 Juil 2023
Commenté : Steven Lord le 17 Juil 2023
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?

Réponses (1)

Cris LaPierre
Cris LaPierre le 17 Juil 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 commentaires
Francesco Pio
Francesco Pio le 17 Juil 2023
This works, thanks a lot
Steven Lord
Steven Lord le 17 Juil 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])
whichBin = 3
x = 42;
whichBin = discretize(x, [-Inf 3 10 20 Inf])
whichBin = 4

Connectez-vous pour commenter.

Catégories

En savoir plus sur Statistics and Machine Learning Toolbox dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by