Verfasst am: 17.11.2011, 19:13
Titel: Wie überprüfe ich Worteingaben bei Matlab?
Hallo,
hoffentlich könnt ihr mir helfen:
ich möchte meinen User mit meinem Matlab Programm auffordern, eine gewünschte Sprache einzugeben und möchte dann überprüfen, ob dieser entweder Deutsch, deutsch, german, German eingegeben hat.
Wie mache ich das?
habe es so geschrieben:
Code:
Sprache=input('Bitte geben Sie die Zielsprache ein','s')
..
if Sprache==Deutsch || deutsch
Verfasst am: 17.11.2011, 21:17
Titel: Re: Wie überprüfe ich Worteingaben bei Matlab?
Hallo Greta,
Habe ich diese Frage heute schon in einem anderen Forum gelesen?
Strings vergleich man am besten mit STRCMP. Implizit wird das auch in ISMEMBER gemacht.
Gruß, Jan
Greta
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 18.11.2011, 22:28
Titel: funktioniert nicht
Vielen Dank, Jan, nun leider meckert Matlab weiter.
Habe folgendes geschrieben:
Code:
h=input('Bitte geben Sie die gewünschte Stundenzahl ein> ','s');
m=input('Bitte geben Sie die gewünschte Minutenzahl ein> ','s');
Sprache=input('Bitte geben Sie die gewünschte Sprache ein> ','s');
Meine Aufgabe ist es also, die Uhrzeit so auszugeben, wenn der User Deutsch eingegeben hat. Nun will ich das Programm laufen lassen und es kommt immer:
??? Operands to the || and && operators must be convertible to logical
scalar values.
Ich weiß nicht, was ich daran noch ändern soll. Kann man bei strings das || etwa nicht verwenden?
Verfasst am: 19.11.2011, 22:04
Titel: Re: funktioniert nicht
Hallo Greta,
Für die Kommunikation im Forum ist es wichtig, eine vollständige Kopie der Fehlermeldung zu posten. Dann ist ein Ratschlag am leichtesten.
Code:
h = input('Bitte geben Sie die gewünschte Stundenzahl ein> '); % Als Zahl!
m = input('Bitte geben Sie die gewünschte Minutenzahl ein> '); % Als Zahl!
Sprache = input('Bitte geben Sie die gewünschte Sprache ein> ','s');
ifstrcmpi(Sprache, 'deutsch') % ? Kommt hier etwas hin? Wenn nicht, würde ich das IF weglassen. elseifstrcmpi(Sprache, 'german') if h<0 || h>24 || m<0 || m>60 fprintf('Ungültige Angabe!');
else
h = mod(h, 24);
fprintf('Die Uhrzeit ist: %0.2d:%0.2d\n', h, m);
end end
um einen größer,kleiner vergleich durchführen zu können würde ich, wenn dein Input-Befehl einen string ergibt, die antwort mit str2double in eine double umwandeln. Diesen kannst du dann mit > bzw. < vergleichen.
Allerdings kannst du dir deine ganzen if- Bedingungen auch sparen, indem du das richtige format wählst:
Statt INPUT einen String lesen zu lassen und ihn per STR2DOUBLE umzuwandeln, kann man INPUT auch gleich eine Zahl lesen lassen.
Einen passendes Format für FPRINTF zu wählen ist wirklich deutlich praktischer. Ich hatte es bereits erwähnt.
Gruß, Jan
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.