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

mit findobj eingabefelder und plot zurücksetzen

 

savenius
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 29.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.01.2010, 19:00     Titel: mit findobj eingabefelder und plot zurücksetzen
  Antworten mit Zitat      
Hi Leute,

ich verstehe den findobj Befehl nicht so richtig. Ich möchte mit dem Befehl in verschiedenen Texteingabefeldern die Zahlen und einen Graphen zurücksetzen.

Code:

function datei_menu_reset_Callback(hObject, eventdata, handles)
% hObject    handle to datei_menu_reset (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% alle Eingaben aus den Edit-feldern löschen:
set(findobj('type','edit'),'String',' ');


Das alles würde ich gerne in einem Untermenü einbinden.
Mein Problem besteht darin, welche Werte ich für 'type' und 'edit' eingeben muss? Confused

Gruß savenius
Private Nachricht senden Benutzer-Profile anzeigen


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 18.01.2010, 18:36     Titel:
  Antworten mit Zitat      
Hallo,

ich glaube, Du verwechselst zwei Eigenschaften. Es müsste
Code:
set(findobj('style','edit'),'String',' ');

heißen ...

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
savenius
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 29.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2010, 12:01     Titel:
  Antworten mit Zitat      
Hi Titus,

hat einwandfrei funktioniert. Very Happy

Danke

Also 'edit' hab ich verstanden, aber was bedeutet den 'Style' ?

Gruß savenius
Private Nachricht senden Benutzer-Profile anzeigen
 
heinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2010, 15:06     Titel: Plot zurücksetzen
  Antworten mit Zitat      
Hallo,

ich hab einen Gui bei dem man nacheinander

- Dateien einliest (uigetfile)
- Werte eingibt (textedit fenster)
- und das Ergebnis ploten lässt (handleaxis...)

funktioniert alles wunderbar. Jetzt möchte ich eine Button "Reset All" einbauen, der die komplette Berechnung zurück setzt und alle Eingaben und Plots wieder löscht. Also den ursprünglichen Zustand, wie nach einem Neustart, herstellt (auch die 0er wieder im EditText Fenster anzeigt).

Mit
Code:
set(findobj('style','edit'),'String',' ');


werden zwar die eingegebenen Werte gelöscht, allerdings bleiben die plots sichtbar und die Nuller in den EditText Feldern erscheinen nicht mehr.

Hat jemand eine Idee wie das funktioniert?

Vielen Dank - Heinz
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 10.03.2010, 15:40     Titel:
  Antworten mit Zitat      
Hallo Heinz,

du hast doch Threat gelesen, dann weiß du, dass nur Text in Edit Felder gelöscht wird. Das muss du doch irgend wie logisch für dich verwendbar machen.

z.B Edit Felder auf Nuller Setzen, nur an einer Stelle verändern.
Code:

% Edit-Felder auf Nuller setzen:
set(findobj('style','edit'),'String','0');
 


Wieviele Axes hast du? Wenn eine, dann reicht schon cla zu verwenden.
sonst denke ich so:
Code:

delete(findobj('type','line'));
 
Private Nachricht senden Benutzer-Profile anzeigen
 
heinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2010, 18:45     Titel:
  Antworten mit Zitat      
Hi Denny,

danke für die schnelle Hilfe. Ich arbeite noch nicht lange mit Matlab und bin deshalb noch sehr unbedarft. Ich bitte daher um Nachsicht.

Leider hat dein Vorschlag noch nicht ganz zum gewünschten Erfolg geführt. in den Axes bleiben Fragmente von dem letzten Plot wie z.B. die Legende bestehen. Auch die Achsenskalierung wird nicht auf den ursprünglichen Zustand zurückgesetzt.

Ich hatte vergessen zu erwähnen, dass auch ein Slider verwendung findet. Dieser Slider bleibt nach dem Reset auf dem letzten Wert stehen. Es wäre schön, wenn er zurück springen würde.

Gibt es die Möglichkeit, das Gui mit dem "Reset Button" neu zu starten? Ist wahrscheinlich zeitaufwendig aber sollte doch zum gewünschten Ziel führen. Was meinst Du?
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 10.03.2010, 19:10     Titel:
  Antworten mit Zitat      
Hallo Heinz,

das Fenster neu zu starten, das ist möglich.
wie hast du dein GUI erstellt? Mit GUIDE-Werkzeugen oder über Code?

Code:

% altes fenster löschen
delete(handle_deines_Fenster)

% und dann script ausführen
start_mein_gui
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Heinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.03.2010, 12:26     Titel:
  Antworten mit Zitat      
Hallo,

ich habe deinen Rat befolgt. Mit

Code:


% altes fenster löschen
delete(MY_GUI)

% und dann script ausführen
start (MY_GUI)

 


funktioniert es. Allerdings kommt anschließend immer diese Fehlermeldung


Code:
??? Undefined function or method 'start' for input arguments of type 'double'.

Error in ==> MY_GUI>Clear_Callback at 475
start (MY_GUI)

Error in ==> gui_mainfcn at 96
        feval(varargin{:});

Error in ==> MY_GUI at 42
    gui_mainfcn(gui_State, varargin{:});

Error in ==>
@(hObject,eventdata)MY_GUI('Clear_Callback',hObject,eventdata,guidata(hObject))

 
??? Error while evaluating uicontrol Callback


Was hat das zu bedeuten?
 
Heinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.03.2010, 12:27     Titel:
  Antworten mit Zitat      
Ich habe das Gui mit Werkzeugen erstellt.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 11.03.2010, 12:38     Titel:
  Antworten mit Zitat      
Hallo

mit script ausführen, habe ich gemeint, dass du Programm starten sollst, wie du es in Konsole starten würdest.
Wie startest du deine Programm in Matlab?


ich vermute so soll es heißen
Code:

function Clear_Callback(hObject, eventdata, handles)
% altes fenster löschen
delete(handles.MY_GUI)
% und dann script ausführen
MY_GUI

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Heinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.03.2010, 14:29     Titel:
  Antworten mit Zitat      
Jetzt funktioniert es! Vielen Dank für deine Geduld

MfG Heinz
 
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.