WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

in Editor-Fenster wird keine natürliche Zahl eingeben

 

ka404
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 10:36     Titel: in Editor-Fenster wird keine natürliche Zahl eingeben
  Antworten mit Zitat      
Hallo,

In meinem Programm kann der Benutzer in das Editor Fenster eine Zahl eingeben, wenn er z.B. eine 2 eingibt so erscheint im panel-Fenster eine Tabelle mit 3 Zeilen und 2 Spalten, das Editor-Fenster legt also die Anzahl der Spalten fest. Die Anzahl der Zeilen (3) ist dabei immer gleich.
Wird also z.B. eine 4 eingeben erscheint eine Tabelle mit 3 Zeilen und 4 Spalten....

Nun zu meinem Problem: wenn ich im Editor-Fenster nun keine natürliche Zahl eingebe also z.B. eine 2,3 oder 0.5 was ja mal passieren kann , kommt es zu Warnungen (Fehlermeldungen) im Command Window. Kann ich diese unterbinden??
Kennt jemand eine geeignete Lösung?

Schon mal vielen Dank

LG
Private Nachricht senden Benutzer-Profile anzeigen


Super8film
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 13.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 10:38     Titel:
  Antworten mit Zitat      
Code:


sollten da abhilfe schaffen
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.09.2013, 12:11     Titel: Re: in Editor-Fenster wird keine natürliche Zahl eingeben
  Antworten mit Zitat      
Hallo ka404,

Zitat:
In meinem Programm kann der Benutzer in das Editor Fenster eine Zahl eingeben, wenn er z.B. eine 2 eingibt so erscheint im panel-Fenster eine Tabelle mit 3 Zeilen und 2 Spalten, das Editor-Fenster legt also die Anzahl der Spalten fest. Die Anzahl der Zeilen (3) ist dabei immer gleich.
Wird also z.B. eine 4 eingeben erscheint eine Tabelle mit 3 Zeilen und 4 Spalten....

Dies hat eigentlich alles mit dem Problem nichts zu tun, oder?

Was bedeutet nun genau "wenn ich im Editor-Fenster eine Zahl eingebe"? Meinst Du den INPUT-Befehl? Oder was genau ist "das Editor-Fenster"?

Ob eine Zalh ein positiver Integer ist, kann man konkret testen:
Code:
ask = true;
while ask
  a = input('Number of columns: ');
  if a >= 1 && a == floor(a)
    ask = false;
  else
    warning('Number must be a positive integer');
  end
end

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
ka404
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.09.2013, 09:53     Titel: Re: in Editor-Fenster wird keine natürliche Zahl eingeben
  Antworten mit Zitat      
Hallo Jan,

Ich meine nicht den Input-Befehl. ich Meine das ich im im guide auf die grafische Oberfläche ein Editor-Fenster angebracht habe das editierbar ist, d.h. im laufenden Programm kann ich in dieses Fenster eine beliebige Zahl eingeben. Gebe ich wie gesagt nun keine Integer Zahl ein, kommen diese vielen Warnungen im Command Window, wie kann ich diese unterbinden? und kann man eine Fehlermeldung direkt auf der grafischen Oberfläche erscheinen lassen? sodass der Benutzer gleich sieht das er was falsches eingeben hat und er dann vielleicht diese Warnung wegklickt und erneut eine Zahl im editor-fenster eingibt und dann wieder geprüft wird ob es eine Integer Zahl ist oder nicht?

bisher wird die Zahl a aus dem Editorfenster so auslesen:

a = str2double(get(hObject,'String'));

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.09.2013, 12:19     Titel: Re: in Editor-Fenster wird keine natürliche Zahl eingeben
  Antworten mit Zitat      
Hallo ka404,

Zitat:
Ich meine nicht den Input-Befehl. ich Meine das ich im im guide auf die grafische Oberfläche ein Editor-Fenster angebracht habe ...

Das ist ein gutes Beispiel dafür, wie praktisch es in einem Forum ist, das Problem genau zu erklären. Dann liegen die Antwortenden seltener wegen mutiger Raterei daneben.

Du hast also ein Edit-Feld.
Praktischerweise kannst Du auch dann genau die gleiche Methode verwenden, die ich schon gepostet hatte, nur eben an einer anderen Stelle, nämlich im Callback des Edit-Feldes.
Code:
function EditField_Callback(hObject, EventData)
x = sscanf(get(hObject, 'String'), '%g', 1);   % [Typo fixed]
if isempty(x) || x < 1 || x ~= floor(x)
  warndlg('This number must be a positive integer');
  set(hObject, 'String', '');
end

Es geht also auf alle Fälle nicht darum, die Warnmeldung zu unterdrücken - das wäre fatal. Sondern statt die Probleme zu verheimlichen, sollte man sie unbedingt lösen. Und wenn das Problem in the Benutzer-Eingabe liegt, sollte man dies lösen, wenn der Benutzer die Zahl eingibt, und nicht erst wenn die Berechnungen gestartete werden. Nur wenn die User eine "unmittelbare" Reaktion erhalten, begreifen sie intuitiv, wo sie was ändern müssen.

Gruß, Jan

Zuletzt bearbeitet von Jan S am 12.09.2013, 23:31, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
ka404
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.09.2013, 17:12     Titel: Re: in Editor-Fenster wird keine natürliche Zahl eingeben
  Antworten mit Zitat      
Hallo Jan,

gibt es in Matlab denn die scanf- Funktion weil ich eine Fehlermeldung bekomme mit undefinierte Funktion Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 12.09.2013, 21:29     Titel:
  Antworten mit Zitat      
Hallo

die Funktion heißt SSCANF, Jan hat einfach einen Tippfehler gemacht

Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.