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

Vektor zwischen Funktionen übergeben

 

littleforest
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 03.01.11
Wohnort: ---
Version: MATLAB 7.4.0 (R2007a)
     Beitrag Verfasst am: 03.01.2011, 14:57     Titel: Vektor zwischen Funktionen übergeben
  Antworten mit Zitat      
Hallo zusammen,

ich habe eine Frage bezüglich der Übergabe von Werten zwischen Funktionen. In meinem m-file berechne ich in einer Funktion Werte, welche ich zu einem Vektor zusammen fasse. Auf den Vektor möchte ich in einer anderen Funktion in diesem m-file zurückgreifen.

Wenn ich versuche, den Vektor anzusprechen, kommt die Fehlermeldung "undefined function". Der Vektor ist nur lokal gültig. Wie kann ich ihn an die zweite Funktion übergeben?

Vielen Dank und ein gesundes Jahr 2011
Private Nachricht senden Benutzer-Profile anzeigen


FearTheFear
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 22.11.10
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 03.01.2011, 16:40     Titel:
  Antworten mit Zitat      
Hallo!

Wenn du mehrere Funktionen in einem m File hast, dann musst du die Funktionen die nach der 1. Funktion folgen irgendwo aufrufen. Das geht so

[a,b,c]=NameDerUnterfunktion(x,y,z)

In der eckigen Klammer stehen die Werte die du aus der Unterfunktion zurückhaben möchtest (kann auch leer sein). In den runden Klammern steht das, was du in deine Unterfunktion reingibst. Hier muss dein Vektor stehen.

Gruß, Laura
Private Nachricht senden Benutzer-Profile anzeigen
 
littleforest
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 03.01.11
Wohnort: ---
Version: MATLAB 7.4.0 (R2007a)
     Beitrag Verfasst am: 03.01.2011, 17:16     Titel:
  Antworten mit Zitat      
Hallo Laura,

danke für den Tipp. Leider funktioniert es bei mir nicht. Bei den Funktionen handelt es sich um automatisch generierte Funktionen bei der Erstellung einer GUI. Über einen Button lasse ich drei Werte berechnen, die ich zu einem Vektor zusammenführe. Eine Callback Funktion soll diesen Vektor aufnehmen. Habe es probeweise mit einem Wert ,X genannt, versucht und so in die function eingefügt:

Code:

function WiWe_Callback(hObject, eventdata, handles, X)

gwind = Windwert(handles.Windgebiet);
gpv = PVWert(handles.PVGebiet);
val = get(hObject, 'Value');
NT = X / gwind;
MT = X * gwind / gpv;
HT = X;


Code zeigt nur Ausschnitt.
Bringt Fehlermeldung: Input argument "X" is undefined.

Danke

Björn
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 03.01.2011, 17:32     Titel:
  Antworten mit Zitat      
Hallo,
versuche mal folgendes
Code:

function WiWe_Callback(self, hObject, eventdata, handles, X)

gwind = Windwert(handles.Windgebiet);
gpv = PVWert(handles.PVGebiet);
val = get(hObject, 'Value');
NT = X / gwind;
MT = X * gwind / gpv;
HT = X;
 

_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
littleforest
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 03.01.11
Wohnort: ---
Version: MATLAB 7.4.0 (R2007a)
     Beitrag Verfasst am: 04.01.2011, 10:13     Titel:
  Antworten mit Zitat      
Hallo,

funktioniert leider auch nicht. Eine Fehlermeldung für Parameter "handles" wird angezeigt.
Versuche es über einen anderen Weg, außer ihr habt noch Vorschläge.

Danke

Björn
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 04.01.2011, 11:42     Titel:
  Antworten mit Zitat      
Wie sieht denn der Funktionsaufruf aus?
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.01.2011, 11:47     Titel:
  Antworten mit Zitat      
Hallo,

am einfachsten ist es, den Vektor X in der Funktion, in der er erstellt wird, in das Feld Userdata eines Elements der GUI zu schreiben
Code:
set(handles.wasweissich, 'UserData', X)

Wenn der Vektor X gebraucht wird, holt man ihn sich genauso wieder raus:
Code:
get(handles.wasweissich, 'UserData', X)

Alternativ setappdata/getappdata.

Das bezieht sich natürlich nur auf GUIs.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
littleforest
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 03.01.11
Wohnort: ---
Version: MATLAB 7.4.0 (R2007a)
     Beitrag Verfasst am: 04.01.2011, 11:49     Titel:
  Antworten mit Zitat      
Hallo,

der Vektor wird in

Code:

function button_Berechnen_Callback(hObject, eventdata, handles)


berechnet. Diese Funktionsbezeichnung wurde GUI erstellt. Die Funktion greift auf viele handles-Objekte zu.

Einen Funktionsaufruf dieser Funktion in der Zielfunktion klappt nicht.

Danke Björn
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 04.01.2011, 11:53     Titel:
  Antworten mit Zitat      
Ach das mit der GUI hatte ich wohl überlesen.
GUI ist nicht so mein Gebiet.

Aber guck dir mal den Post von Harald an, das sieht genau nachdem aus was du brauchst.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
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.