|
Soopaman_Luva |

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 26.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 19:43
Titel: Variable auf Wert prüfen
|
 |
Hi,
würde gerne mit Hilfe einer if-Abfrage bei einer Variable prüfen ob da jetzt eine Zahl drinnen steht oder ein Buchstabe, Symbol etc. Weil wenn es keine Zahl ist soll eine Fehlermeldung kommen.
Und noch eine Frage:
Gibt es einen Befehl mit dem ich das Matlab-Programm neu starten kann? D.h. dass nach einer if Abfrage eine Fehlermeldung kommt, und dann beginnt das Programm wieder von vorne.
Danke für die Hilfe.
|
|
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 20:44
Titel:
|
 |
Wo kommen diese Variablen denn her?
Wenn es Strings sind könnte ein ganz einfacher Test so aussehen:
|
|
|
Soopaman_Luva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 26.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 20:48
Titel:
|
 |
Der Wert der Variablen wird eingegeben. Und wenn halt irgendwelche Buchstaben vorkommen sollte es eben eine Fehlermeldung geben.
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 20:52
Titel:
|
 |
Dann müsste es ja gehen...
|
|
|
Soopaman_Luva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 26.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 20:58
Titel:
|
 |
Habe es versucht bekomme aber jetzt diese Fehlermeldung:
Bitte nMax eingeben(Ganzzahlig): 12
??? Undefined function or method 'regexpi' for input
arguments of type 'double'.
Error in ==> Siebtest at 15
p=regexpi(nMax,'\D');
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 21:05
Titel:
|
 |
Also gut,
ich dachte es wird etwas mit
oder so eingelesen, halt etwas, was einen String liefert. Damit würde es gehen.
Du liest da anders ein...aber wie?
Da Du regexp offenbar auf eine Variable der Klasse double anwendest müsste man sich das ganze auch schon wieder sparen können, da etwas der Klasse double eh immer eine Zahl ist.
Man müsste mal mehr von dem Code sehen...
|
|
|
Soopaman_Luva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 26.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 21:16
Titel:
|
 |
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 22:20
Titel:
|
 |
Da hast Du doch schon eine gut Lösung...
Um das Problem mit den Neustarten des Programms noch zu lösen kannst Du das ganze in eine Funktion packen, die sich im else-Zweig der if-Anweisung selbst aufruft.
Speichere den folgenden Code unter der Datei sieb.m:
Du solltest noch eine Abfrage gegen nMax<=0 einfügen.
|
|
|
Soopaman_Luva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 26.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 22:57
Titel:
|
 |
Danke dir, funktioniert super. Nur halt das mit der if-Abfrage nicht, dass man nur Zahlen eingeben kann, aber das ist nicht so schlimm, werde einfach noch ein bisschen probieren, und falls ich es wirklich nicht schaffen sollte, dann melde ich mich nochmal.
Auf jedenfall danke.
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 23:15
Titel:
|
 |
Ja, dann musst Du doch auf Strings ausweichen, siehe dazu den Parameter 's' beim Input-Befehl:
|
|
|
Soopaman_Luva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 26.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2009, 23:39
Titel:
|
 |
Danke habe es jetzt so gemacht
Aber jetzt könnte ich ja einfach die anderen beiden if-Abfragen weglassen, die kontrollieren ob die Zahl positiv ist und es sich um eine ganze Zahl handelt.
So hätte ich mir das gedacht:
Funktioniert eigentlich so. Und so spare ich mir relativ viel.
Würde jetzt nur noch gerne wissen was diese Zeilen genau machen, bzw. was sie bedeuten:
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.02.2009, 00:12
Titel:
|
 |
Soopaman_Luva hat Folgendes geschrieben: |
Würde jetzt nur noch gerne wissen was diese Zeilen genau machen, bzw. was sie bedeuten:
|
Erst werden die Anzahl der Zeichen festgestellt, die keine Zahlen sind.
Dann wird geprüft ob es höchstens eins ist, und zwar ein Punkt (als Dezimaltrennzeichen).
|
|
|
Soopaman_Luva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 26.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.02.2009, 10:03
Titel:
|
 |
Anonymous hat Folgendes geschrieben: |
Soopaman_Luva hat Folgendes geschrieben: |
Würde jetzt nur noch gerne wissen was diese Zeilen genau machen, bzw. was sie bedeuten:
|
Erst werden die Anzahl der Zeichen festgestellt, die keine Zahlen sind.
Dann wird geprüft ob es höchstens eins ist, und zwar ein Punkt (als Dezimaltrennzeichen). |
Oke, aber was genau ist \D?
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.02.2009, 10:39
Titel:
|
 |
|
|
joanna |

Forum-Anfänger
|
 |
Beiträge: 45
|
 |
|
 |
Anmeldedatum: 26.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.07.2010, 09:29
Titel:
|
 |
Hallo,
ich habe ein ähnliches Problem, wie es hier bereits beschrieben ist.
Und zwar gibt es eine Eingabe (als String) und nun soll dieser String getestet werden.
Zum einen soll getest werden, ob die Eingabe eine Zahl, bzw eine Dezimalzahl ist, das hab ich mit dem hier schon genannten Code gemacht, und das funktioniert auch prima!
Allerdings möchte ich auch Rechnungen wie z.B 72/2.54 zulassen. Muss ich dann eine verschachtelte Auswahl oder so machen?
Vielleicht hat ja jemand von euch eine Idee
|
|
|
|
|
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.
|
|