2009-04-01 14 views

Antwort

2

Ich habe keine Ahnung, was Sie genau tun wollen, aber Sie können wahrscheinlich die Userdata Eigenschaft Wert verwenden:

Passing somevar wenn das Formular myfig öffnen:

h = myfig('UserData', somevar); 

oder später:

h = myfig(); 
[...] 
set(h, 'UserData', somevar); 

In der Figur Sie die Immobilie mit zugreifen:

function some_Callback(hObject, eventdata, handles) 
    somevar = get(hObject, 'UserData'); 

Siehe link text und link text

3

Die von ymihere gelieferten Links sehr hilfreich aussehen. Darüber hinaus werden einige der Optionen (verschachtelte Funktionen und GUIDATA), die in diesen Links behandelt werden, in einem anderen Beitrag auf SO behandelt: How to create a GUI inside a function in MATLAB? Es gibt ein paar Beispiele dort, wie der Code für jeden Fall aussieht.

Ich bin persönlich teilweise verschachtelte Funktionen, da ich glaube, dass es in den meisten Fällen einen kürzeren, saubereren Code erzeugt. Es ist jedoch wahrscheinlich die schwierigere Methode zum Freigeben von Anwendungsdaten, wenn Sie ein neuer MATLAB-Benutzer sind (es kann etwas gewöhnungsbedürftig sein). Die einfachste Option für Sie könnte sein, die Eigenschaft 'UserData' beim Aufruf Ihrer Funktion zu setzen (wie von ymihere vorgeschlagen). Wenn Sie Ihr GUIDE GUI "myGUI.m" gespeichert, dann würden Sie rufen:

>> hGUI = myGUI('UserData','hello'); 

wo hGUI ein Handle auf Ihrem GUI-Objekt ist. Sie können dann die ‚Userdata‘ Eigenschaft erhalten, um zu sehen, dass es die Zeichenfolge ‚Hallo‘ enthält:

>> get(hGUI,'UserData') 

ans = 

hello 

statt ‚Hallo‘, können Sie alles, was Sie setzen wollen, wie eine Struktur von Daten. Sie sollten innerhalb der Rückrufe Ihrer GUIDE m-Datei auf das Feld 'UserData' der Figur zugreifen können. Sie müssen das Zahlen-Handle aus dem Handles Argument an Ihre Rückrufe übergeben.

EDIT: Ein Nachteil der ‚Userdata‘ Eigenschaft zu verwenden, oder einige der anderen Methoden, die Daten an ein Objekt anhängen ist, dass die Daten zufällig sein könnte (oder absichtlich) überschrieben oder auf andere Weise vom Benutzer beschädigt oder andere Anwendungen. Der Vorteil der Verwendung verschachtelter Funktionen für die gemeinsame Nutzung von Daten zwischen Ihren GUI-Callbacks besteht darin, dass der Code von allem isoliert ist, was der Benutzer oder eine andere Anwendung tun könnte. Umgekehrt kann die Verwendung von global variables ziemlich gefährlich sein.