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

Objekte (bsp. Edit-Felder) an eine Unterfunktion übergeben.

 

Marci0804
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 01.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2020, 13:33     Titel: Objekte (bsp. Edit-Felder) an eine Unterfunktion übergeben.
  Antworten mit Zitat      
Hallo,
ich bin noch relativ neu bei Matlab habe mich aber soweit gut belesen. Nun bin ich dabei meine erste Gui zu erstellen und bin an einem Punkt angekommen an dem der Code innerhalb meiner Button-Callback ziemlich lang ist. Funktionen, bei denen ich normale (mathematische) Variablen zu Unterfunktionen schicken kann, habe ich bereits eingebunden. Jetzt möchte ich aber auch gerne die Objekte bsp. Edit-Felder, in denen ich meine Ausgabewerte habe, an weitere Unterfunktionen übergeben. Das habe ich leider bisher noch nicht verstehen können und brauche deshalb eure Hilfe. Meine Vermutung ist, dass ich irgendwie das Wort hObject an die Neue Unterfunktion übergeben muss, aber das hat bisher noch nicht geklappt.

Hier ein Beispielelement aus meiner Button-Callback-Funktion:

Code:
  set(handles.Cw_Ru_min_Ausgabe, 'string', ' ');
            set(handles.Cw_Fl_min_Ausgabe, 'string', ' ');
            set(handles.Cw_ges_Ausgabe, 'string', ' ');
            set(handles.W_Ausgabe, 'string', ' ');
            set(handles.s_Ausgabe, 'string', ' ');
            set(handles.l_i_Ausgabe, 'string', ' ');
            set(handles.l_a_Ausgabe, 'string', ' ');
            set(handles.phi_50_Ausgabe, 'string', ' ');


Diesen Abschnitt würde ich gerne an eine Unterfunktion übergeben.

Danke für eure Hilfe Very Happy
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.12.2020, 14:19     Titel:
  Antworten mit Zitat      
Hallo,

ich würde die handles-Variable übergeben.

Anscheinend arbeitest du in GUIDE. Wenn nichts dagegen spricht, würde ich empfehlen, von Anfang an mit App Designer zu arbeiten. Dort ist vieles schöner aufgesetzt und somit intuitiver.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Marci0804
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 01.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2020, 14:25     Titel:
  Antworten mit Zitat      
Erstmal danke für deine schnelle Antwort. Wie genau kann ich die Handles an eine Unterfunktion übergeben? Auf die gleiche Weise wie normale Variablen? Ich habe auch gesehen, dass in der Openingfunktion in anderen Programmen neue Handles eingebracht werden. Muss ich da auch etwas beachten?

Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.12.2020, 14:30     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Auf die gleiche Weise wie normale Variablen?

Ja.

Zitat:
Muss ich da auch etwas beachten?

Wenn die Handles-Struktur in der OpeningFcn oder einem anderen Callback verändert wurde, muss danach der guidata-Aufruf (meist guidata(hObject, handles) )folgen, damit die Änderung auch in anderen Callbacks zur Verfügung steht.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Marci0804
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 01.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2020, 14:37     Titel:
  Antworten mit Zitat      
Ok, ich habe jetzt versucht das Handle zu übergeben. Da wird mir leider ein Fehler angezeigt. Was mache ich hier Falsch?

Code:
function Cw_rumpf_uebergeben(handles.Cw_Ru_min_Ausgabe)
set(handles.Cw_Ru_min_Ausgabe, 'string', ' ');


Hier wird mir der Punkt bei dem Übergabeparameter als Falsch unterstrichen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.12.2020, 14:42     Titel:
  Antworten mit Zitat      
Hallo,

du musst die gesamte handles-Variable übergeben.
Code:
function Cw_rumpf_uebergeben(handles)
set(handles.Cw_Ru_min_Ausgabe, 'string', ' ');


Der Aufruf erfolgt dann über
Code:
Cw_rumpf_uebergeben(handles)


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Marci0804
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 01.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2020, 14:46     Titel:
  Antworten mit Zitat      
Super, es klappt jetzt. Danke dir vielmals für deine Zeit und Hilfe Very Happy
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 - 2024 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.