|
|
Objekt als Funktionsparameter? |
|
Matlos |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.04.2009, 17:12
Titel: Objekt als Funktionsparameter?
|
|
Hi Forum!
Ich habe ein Programm mit einem Hauptfenster und noch vielen Parameter-Fenstern.
jetzt habe ich im m-file des hauptfensters objekte deklariert, deren parameter nachher im laufenden programm über diese Parameter-fenster verändert werden sollen.
mein versuch war, die objekte als parameter im funktionsaufruf zu übergeben. für den hinweg hats geklappt (also von hauptfenster nach parameterfenster) für den rückweg nicht.
woran kann das liegen?
hier ein (exemplarischer) versuch:
hauptfenster:
und im parmeterw
bin noch nicht wirklich weit, was matlab betrifft. mach ich da schlimme schlimme fehler oder geht das ganz so ähnlich?
danke schonmal.
Grüße
Matlos
|
|
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.04.2009, 19:32
Titel:
|
|
Normalerweise sollte das so klappen. Und normalerweise solltest Du dir das zurückgeben des Handles auch sparen können. Du übergibst der Funktion dein Handle und zurückgegeben wird einfach nichts. Das Objekt bleibt ja bestehen und das Handle zum Objekt ändert sich beim ändern einer Eigenschaft nicht.
|
|
|
Matlos |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2009, 17:00
Titel:
|
|
hi epfi!
erstmal danke für die reaktion!
habe dennoch verständnisprobleme....
wenn ich die variable h benutze, also
,
dann bezieht sich doch jegliche änderung der parameter doch nur auf h? wie kriege ich denn heraus, welches handle mein objekt, das ich da übergebe, hat?und wie beeinflusse ich das dann am besten?
Gruß
Matlos
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2009, 19:00
Titel:
|
|
Außerhalb deiner Funktion ist objekt1 eine Variable, deren Wert das Handle deines Objekts ist. Wenn Du den Wert von objekt1 an die Funktion übergibst und dieser Wert wird in der Funktion der Variablen h zugewiesen, dann ist h eine Variable, deren Wert das Handle das Objekts ist.
Kurz und knapp: Wenn Du in der Funktion über h auf das Objekt zugreifst, kommt das aufs gleiche raus, wie wenn Du außerhalb der Funktion über objekt1 auf das Objekt zugreifst.
Beeinflussen kannst Du dein Objekt dann mit der Funktion set oder allen möglichen für das Objekt zulässigen Operationen.
|
|
|
Matlos |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2009, 19:04
Titel:
|
|
Achso, h ist dann sozusagen das objekt und hat nicht nur dessen eigenschaften übernommen?
Das war mir nicht klar, ich dachte, h sei ein neues Objekt, das dann parallel zu dem übergebenen exisitiert und nicht von der existenz des anderen weiß.
klasse, vielen dank für die hilfe!
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2009, 20:16
Titel:
|
|
Ja, im Prinzip ist es genau so. Nur, dass h das Handle ist, das Dein Objekt identifiziert und nicht das Objekt selbst.
Bemerkbar macht sich dieser feine Unterschied zum Beispiel, wenn das Objekt selbst riesig groß ist (z.B. 500MB). Wenn Du so ein Objekt einer Funktion übergeben würdest, würde Matlab eine Kopie erstellen, mit der Du dann in der Funktion arbeitest. Das Handle zu dem Objekt ist aber unabhängig von der Objektgröße immer gleich klein und kann auch ohne schlechtes Gewissen an Funktionen übergeben werden.
|
|
|
|
|
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 - 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.
|
|