|
Stefan2010 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.12.2010, 21:41
Titel: Nur Zahleneingabe
|
 |
Hallo,
ich mache mit Matlab eine Eingabe die z.B. S=input ('Geben Sie bitte die Seillänge in m ein: >> ','s'); so aussieht. Nun würde ich gerne mit einer if else Funktion das so einrichten das man nur Zahlen eingeben kann. Wenn man Buchstaben eingibt soll kommen: Ungültige Eingabe und man soll das ganze nochmal eingeben.
Hoffe ihr versteht was ich meine. Weiss nicht wie ich es sonst beschreiben soll
Würde mich über Hilfe freuen!
Danke schonmal
Grüße Stefan
|
|
|
|
|
Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 02:05
Titel:
|
 |
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 04:37
Titel: Re: Nur Zahleneingabe
|
 |
Hallo Stefan,
Du könntest den String mit SSCANF in eine Zahl umwandeln lassen.
Das ignoriert zwar angehängte Buchstaben, z.B. in "3.14159265 Meter", aber ist es trotzdem benutzerfreundlich genug.
Gruß, Jan
|
|
|
Stefan2010 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 13:01
Titel:
|
 |
Danke euch schonmal für die antworten. Hatte auch den regexp Befehl gesehen, komme damit aber nicht klar. Ich würd gerne wissen wie der Quellcode aussehen muss vom regedit befehl das er alle positiven Zahlen annimmt, negative Zahlen und Buchstaben dagegen nicht annimmt.
Krieg das nicht auf die Reihe...
Danke schonmal
|
|
|
Stefan2010 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 13:02
Titel:
|
 |
nicht regedit sondern regexp sorry...
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 14:04
Titel:
|
 |
Hallo
1) das habe ich bereits hier gezeigt, schau dazu die 2.Seite:
http://www.gomatlab.de/edit-eingabe.....enny+regexp,start,15.html
2) Du kannst dir REGEXP aber auch sparen:
Rufe einfach INPUT ohne 2. Parameter auf.
INPUT wird dann nur die Zahlen akzeptieren.
Du musst dann bloß die Zahlen prüfen,
ob sie positiv oder negativ sind
Zuletzt bearbeitet von denny am 16.12.2010, 19:10, insgesamt einmal bearbeitet
|
|
|
Stefan2010 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 16:13
Titel:
|
 |
Danke Denny, aber ich will ja alle Zahlen zulassen. Lediglich bei Buchstaben soll dann kommen Ungültige Eingabe und die Eingabeaufforderung erneut gestellt werden.
Geht das mit dem Befehl auch ?
|
|
|
Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 16:35
Titel:
|
 |
Hallo
Zitat: |
INPUT wird dann nur die Zahlen akzeptieren.
|
Das steht doch eindeutig in dennys post, dass dann nur Zahlen akzeptiert werden.
MFG
Sco
|
|
|
_Peter_ |

Moderator
|
 |
Beiträge: 537
|
 |
|
 |
Anmeldedatum: 08.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.10, 2010a
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 16:49
Titel:
|
 |
Stefan2010 hat Folgendes geschrieben: |
Ich würd gerne wissen wie der Quellcode aussehen muss vom regedit befehl das er alle positiven Zahlen annimmt, negative Zahlen und Buchstaben dagegen nicht annimmt.
|
!=
Stefan2010 hat Folgendes geschrieben: |
aber ich will ja alle Zahlen zulassen. Lediglich bei Buchstaben soll dann kommen Ungültige Eingabe und die Eingabeaufforderung erneut gestellt werden.
|
Was möchtest du denn jetzt? soll er ALLE Zahlen zulassen oder NUR POSITIVE?
_________________
Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 19:27
Titel:
|
 |
Stefan2010 hat Folgendes geschrieben: |
Danke Denny, aber ich will ja alle Zahlen zulassen. Lediglich bei Buchstaben soll dann kommen Ungültige Eingabe und die Eingabeaufforderung erneut gestellt werden.
Geht das mit dem Befehl auch ? |
Natürlich geht das
Oder nur mit INPUT:
|
|
|
Stefan2010 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2010, 21:55
Titel:
|
 |
Danke denny, das hat mir sehr geholfen, hab aber noch ein kleines Problem und zwar sieht das bei mir so aus :
Er sagt auch wunder bei zahlen gültige eingabe und bei buchstaben ungü ltige eingabe und stellt die frage nochmal. Das Problem ist jetzt das er auch bei z.b. 2*10^5 oder e-funktionen Ungültige Eingabe sagt. Ich dachte das hätte ich oben bei regexp definiert ?!
Ich glaub ich bin zu blöd
Danke schonmal.
Gruß
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 17.12.2010, 10:31
Titel:
|
 |
Hallo
da ist irgendwie ein Leerzeichen dazwischen reingerutscht und zwar zw. | und ^ Zeichen
so sollte es funktionieren
|
|
|
Stefan2010 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2010, 18:41
Titel:
|
 |
Nochmals danke Denny, aber eingaben wie 10^2 funktionieren in der Abfrage weiterhin nicht. Vllt. hast du ja noch ne Idee
Auf jedenfall Vielen Dank schonmal.
LG
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 17.12.2010, 19:37
Titel:
|
 |
|
 |
|
Hallo Denny,
Reguläre Ausdrücke sind wirklich hart. C-Code sieht ja schon aus, als hätte jemand ein wütendes Gürteltier über die Tastatur gerollt.
Offenbar hat Stefan aber trotz des sehr effizienten Ansatzes Schwierigkeiten damit. Das Parsen von Ausdrücken ist aber auch wirklich eine komplexe Arbeit.
Nun sind Strings wie "8.1 * 10^17" aber einfach keine regulären Zahlen in Matlab, sondern man muss "8.1e17" schreiben. Computer fordern leider einen gewissen Tribut durch hakelige Bedienbarkeit. Ein wirklich menschenfreundliches Interface wäre sowieso sprachgesteuert!
Ein im Vergleich zu REGEXP eher plumper SSCANF-Ansatz:
Das liest eine Zahl ein, ignoriert Spaces am Ende, und lehnt angehängte Buchstaben ab. "8.1e7" wird akzeptiert, "8.1 * 10^7" aber nicht. Auf einem Taschenrechner kann man soetwas aber auch nicht eingeben.
Eine Idee wäre es noch, den String per EVAL auszuwerten. Dann würde auch "sin(0.8)" funktionieren, und "!del *.*" ebenfalls. Das ist deswegen auch nicht gerade besser.
Gruß, Jan
|
|
|
Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 05.04.2011, 21:04
Titel:
|
 |
Hallo,
ich spare mir mal die Eroeffnung eines neuen Threads und haenge meine Frage mal hier mit ran, da sie auch einen regulaeren Ausdruck betrifft. Ich moechte gern bei einer Zahleneingabe (editbox) den String ueberpruefen, ob er eine ganzzahlige Zahl zwischen 21 und 110 ist. Meine bisherige Loesung funktioniert zwar, jedoch bin ich ueberzeugt das dies auch kompakter und vor allem einfacher geht:
Ich waere allerdings dankbar, falls Loesungen ohne regexp gepostet werden, wenn mir jemand trotzdem den regulaeren Ausdruck zeigen koennte.
Vielen Dank
MFG
Sco
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|