|
|
handle structure in nested functions |
|
keywee |
Forum-Fortgeschrittener
|
|
Beiträge: 64
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: R2012a
|
|
|
|
|
|
Verfasst am: 01.02.2013, 17:51
Titel: handle structure in nested functions
|
|
ich habe folgendes Problem. Das Programm was ich geschrieben habe wird langsam so groß und unübersichtlich das ich angefangen habe Funktionen auszulagern und sie dann in die einzelnen Callbacks mittels handles einlade.
wenn ich nun jedoch in der Unterfunktion1 eine Variable habe mit der Unterfunktion2 weiter rechnen soll bekomme ich das nicht hin. Kann mir jmd ein Minimal Beispiel geben?
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 01.02.2013, 21:33
Titel:
|
|
Hallo,
du musst die Variable aus Unterfunktion1 zurück- und in Unterfunktion2 wieder hineingeben.
Grüße,
Harald
|
|
|
keywee |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 64
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: R2012a
|
|
|
|
|
|
Verfasst am: 02.02.2013, 00:11
Titel:
|
|
Hab das irgendwie immer noch nicht hinbekommen?
was genau muss jetzt in, welche Funktion noch rein damit ich das x in Funktion 2 benutzen kann.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.02.2013, 10:14
Titel:
|
|
Hallo,
lies dir doch bitte den Abschnitt in der Doku über Funktionen durch.
Hier müssen die Funktionen so aussehen:
Grüße,
Harald
|
|
|
keywee |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 64
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: R2012a
|
|
|
|
|
|
Verfasst am: 02.02.2013, 10:39
Titel:
|
|
Hallo Harald,
vielen dank erstmal fuer die schnellen antworten und hilfen.
ich hab mir schon diverse abschnitte durchgelesen und mit trial und error versucht nachzubauen...teils funktionen mit @ probiert leider alles bisher ohne erfolg weil vieles mir zum teil umstaendlich erklaert erscheint.
wie sieht das ganze aus wenn ich mehrere variablen einer funktion uebergeben moechte?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.02.2013, 10:41
Titel:
|
|
Hallo,
dann statt x bei den Ein- bzw. Ausgabeargumenten eine Liste der entsprechenden Argumente.
Grüße,
Harald
|
|
|
keywee |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 64
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: R2012a
|
|
|
|
|
|
Verfasst am: 02.02.2013, 11:16
Titel:
|
|
ich hänge immer noch fest. ich habe jetzt das GUI als m.file wie folgt:
in einer seperaten m.file (Unterfunktion1.m) den von dir geposteten code:
und eine erneute m.file (Unterfunktion2.m):
bekomme denoch eine fehlermeldung?!?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.02.2013, 11:32
Titel:
|
|
Hallo,
du musst die Funktionen auch mit den Ein- und Ausgabeargumenten aufrufen, siehe erster Beitrag.
Das alles wird auch beantwortet in:
Grüße,
Harald
|
|
|
keywee |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 64
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: R2012a
|
|
|
|
|
|
Verfasst am: 02.02.2013, 15:20
Titel:
|
|
ok vielen dank erstmal dafuer ich glaube jetzt hab ich so im ansatz das prinzip dahinter verstanden. nun noch einmal eine andere frage diesbezueglich.
in der hauptfunktion.m lade ich ich in einem button callback zum beispiel einmal die unterfunktion1.m so wie du beschrieben hast. was auch wunderbar funktioniert. in der unterfunktion1 ist z.b. uigetfile befehl der ein indiziertes bitmap einliesst names x.
function [x] = unterfunktion1(handles)
uigetfile %%%etc...
x=imread(fullfile(pathname, filename));
end
wenn ich ich jetzt in der unterfunktion2.m x uebergebe muss ich auf einmal erneut ein bild waehlen. er führt immer die ganze funktion aus anstatt die variable aus dem workspace von funktion1 an funktion2 zu uebergeben.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.02.2013, 17:32
Titel:
|
|
Hallo,
wenn du nur die Variable übergibst, solltest du nicht von neuem das Bild auswählen müssen. Nutze doch mal den Debugger um zu sehen, was in welcher Reihenfolge ausgeführt wird.
Falls das nicht weiterhilft, bitte den gesamten relevanten Code posten.
Grüße,
Harald
|
|
|
keywee |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 64
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: R2012a
|
|
|
|
|
|
Verfasst am: 04.02.2013, 09:32
Titel:
|
|
ich habe einfach mal ein einfaches beispiel angehangen. Vielleicht kannst du ja mal einen blick drauf werfen wo genau nun der fehler liegt wenn man die testmain.m ausfuehrt.
Beschreibung: |
|
Download |
Dateiname: |
testmain.m |
Dateigröße: |
75 Bytes |
Heruntergeladen: |
353 mal |
Beschreibung: |
|
Download |
Dateiname: |
test1.m |
Dateigröße: |
64 Bytes |
Heruntergeladen: |
335 mal |
Beschreibung: |
|
Download |
Dateiname: |
test.m |
Dateigröße: |
561 Bytes |
Heruntergeladen: |
357 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.02.2013, 09:54
Titel:
|
|
Hallo,
warum wird uigetfile zwei Mal ausgeführt? Weil du test einmal aus testmain und einmal aus test1 heraus aufrufst.
Mir ist offen gesagt schleierhaft, was du mit den Aufrufen in dieser Form bezweckst. test liest ja das Bild ein, mit dem Bild wird aber in test1 gar nichts gemacht.
Wenn du a,b,c in test1 verwenden möchtest, dann wäre es so sinnvoller:
und
Grüße,
Harald
|
|
|
|
|
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 - 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.
|
|