필터 지우기
필터 지우기

switches with the < and > operators

조회 수: 2 (최근 30일)
Francesco Pio
Francesco Pio 2023년 7월 17일
댓글: Steven Lord 2023년 7월 17일
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?

답변 (1개)

Cris LaPierre
Cris LaPierre 2023년 7월 17일
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
Francesco Pio
Francesco Pio 2023년 7월 17일
This works, thanks a lot
Steven Lord
Steven Lord 2023년 7월 17일
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

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by