2016-03-21 3 views
0

Ich habe den folgenden Satz von if Bedingungen:-Switch-Anweisung Matlab

If (0 <= x < 2) 
y=y1; 
If (2 <= x < 5) 
y=y2; 
If (5 <= x < Infinity) 
y=y3; 

Ich brauche diese mit dem Schalter-Fall in Matlab codieren. Irgendeine Idee ?

+1

Fügen Sie einfach 'swtich' und' end' am Anfang und Ende und Kleinbuchstaben 'If' hinzu? Wenn Sie nicht übereinstimmen, sollte der Abgleich derselbe sein wie er ist. – GameOfThrows

+0

Warum müssen Sie dies als ['switch'] (http://www.mathworks.com/help/matlab/ref/switch.html) Anweisung kodieren? Eine "if" -Anweisung erscheint angemessener. – excaza

+4

Siehe [diesen Beitrag] (http://stackoverflow.com/questions/35919254/multiple-case-statements-on-interval-withinnested-functions/35921078#35921078) als eine Referenz für warum switch/case ist ein schlechter Anwendungsfall hier – Suever

Antwort

2

Aus dem Handbuch

A case_expression nicht relationalen Operatoren sind wie < oder> zum Vergleich gegen die switch_expression. Um Ungleichheit zu testen, verwendet if, elseif, else Aussagen

Ein Schaltergehäuse ist am besten geeignet für eine kleine Anzahl von Ergebnissen, die zu langweilig für sind, wenn Verzweigung. Wenn Sie wirklich switch verwenden müssen, dann müssen Sie eine Kennung festlegen, die den Case-Schalter definieren wird. Einige Beispiele sind auch found in the manual