logischer Ausdruck < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 14:47 Mi 07.04.2010 | Autor: | JanaS |
Hallo!
Ich möchte eine Fehlermeldung schreiben, wenn ein Winkel nicht 10, 20 oder 30 Grad hat.
Versucht habe ich:
if Winkel ~= 10 || 20 || 30
error('Der Winkel muss entweder 10, 20 oder 30 Grad betragen!');
end
Da bekomme ich aber eine Fehlermeldung:
??? Operands to the || and && operators must be convertible to logical scalar values.
Warum?
~= ist doch "ungleich" und || ist ein logisches oder
Muss ich das anders formulieren? Müsste ich den Winkeln die Buchstaben A,B und C zuweisen und dann
if Winkel ~= A || B || C
error('Der Winkel muss entweder 10, 20 oder 30 Grad betragen!');
end
Vielen Dank und viele Grüsse,
Jana
|
|
|
|
Ich würde das komplett anders schreiben:
1: | if (Winkel ~= 10 && Winkel ~= 20 && Winkel ~= 30)
| 2: | disp('Der Winkel muss entweder 10, 20 oder 30 Grad betragen!');
| 3: | end
|
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:35 Do 08.04.2010 | Autor: | JanaS |
Dankeschön Euch beiden! Ich habe meinen Fehler gefunden! Der Winkel war in der Eingabefunktion als string definiert. Jetzt habe ich das weggenommen und die Funktion funktioniert, wie sie soll!
Viele Grüsse, Jana
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:52 Do 08.04.2010 | Autor: | JanaS |
Und ich habe schon wieder vergessen, wie ich aus einer urprünglichen Frage eine Mitteilung mache. Das Programm lief ja trotz Eurer Vorschläge nicht (was ja nicht an den Vorschlägen lag, sondern am string), aber dann habe ich den Fehler gefunden, somit hat sich die Frage erledigt...
LG Jana
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 07:52 Do 08.04.2010 | Autor: | Frasier |
Hallo,
hier noch zwei Alternativen
if ~(Winkel==10 || Winkel==20 || Winkel==30)
error('Der Winkel muss entweder 10, 20 oder 30 Grad betragen!');
end
% oder
erlaubt=[10 20 30];
if ~ismember(Winkel,erlaubt)
error('Winkel nicht erlaubt!');
end
lg
F.
|
|
|
|