Die gui.m Datei mit allen dazugehörenden Funktionen soll normallerweise bloß die Struktur des GUIs darstellen. Die ganzen Ausrechnungen usw. soll man in die extra Funktionen einpacken.
_________________
wenn ich den "Button" drücke, dann wird "testfunktion3" aufgerufen und es erscheint ein kleines editfenster an position so und so.
1) kann wir jemand sagen, mit welchen befehl/code ich diese "testfunktion3" wieder ausschalte, sodass dieses editfenster verschwindet?
2) kann mir jemand diese zeile "[S] = varargin{3};" erklären? warum muss in den geschweiften klammer die "3" stehen? und warum bei z.b. bei einer "2" sich der button nicht reagiert?
2) kann mir jemand diese zeile "[S] = varargin{3};" erklären? warum muss in den geschweiften klammer die "3" stehen? und warum bei z.b. bei einer "2" sich der button nicht reagiert?
VARARGIN wird in "help varargin" und "doc varargin" eigentlich erschöpfend erklärt. Besser kann ich das auch nicht. Aber Du selbst könntest es ja einfach ausprobieren:
Und dann starte das Programm mal mit 3 beliebigen Parametern, z.B. "Test(1, 'hallo', 45)". Dann versuche es mit "Test(rand(2), Inf)" und noch mit "Test(1,2,3,4)".
Dann vergleiche das mit:
Ich glaube, der Groschen fällt dann von ganz alleine.
Gruß, Jan
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 01.10.2010, 08:56
Titel:
hallo,
Zitat:
Ich nehme an, Du möchtest das UICNTROL-Objekt löschen.
jein, mir gehts im grunde darum das ich eine kurze und knackige "hauptgui" und mehrere "unterguis" habe. die unterguis (und nicht einzelne objekte der untergui) sollen bei butten betätigung erstausgeführt werden und wieder geschlossen/gestoppt werden.
die "testfunktion3"=untergui wird noch viele andere buttons, fenster etc enthalten...wenn ich dann in der hauptgui immer "delete(S.ed(1)); etc" wird die hauptgui auch recht lang.
Bitte schreibe nochmal genau auf, was Du möchtest. Wichtig wäre dabei die Matlab-Namen zu verwenden - ich kann z.B. nur raten, was ein "editfenster" sein könnte.
Wenn Du statt des UICONTROLs die dazugehörige FIGURE löschen möchtest, brauchst Du einfach nur den entsprechenden Handle:
1) mfile nummer 2 definiert mein sogenanntes "editfenster"!
2) mfile nummer 1 definiert die buttons "An" und "Aus"!
3) mit button "An" möchte ich mfile nummer 2 starten und somit dieses "editfenster" einblenden.
4) mit button "Aus" möchte ich das ganze mfile nummer 2 stoppen, löschen oder überlagern, sodass man dieses "editfenster" (und andere elemente die noch reingebaut werden z.b. weitere editfenster, buttons, bilder ect.)nicht mehr sieht...k.a. was da möglich ist. das figure aus mfile nummer 1 soll halt wieder nur die buttons "An" und "Aus" enthalten, sodass ich andere (hier nicht genannte) mfiles 3/4/5... mit hier noch nicht eingebauten buttons starten und stoppen kann.
p.s. die beiden vorschläge bei "case S.pb(2)" haben nicht funktioniert.
viele grüße und schönes wochenende.
anonymous
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.10.2010, 20:08
Titel:
und bezüglich varargin will der groschen irgendwie nicht fallen...
mir ist schon klar, dass der funktion pb_call eine beliebige anzahl von parametern "varargin" übergeben wird.
dann wird das erste element, welches pb_call übergeben wurde in "h" und das dritte in "S" gespeichert.
wo wird denn aber was an pb_call übergeben?
ist es diese zeiele?:
Exakt. Es wird Zeit die Dokumentation von Matlab zu lesen. Dort findest Du dies unter dem Stichpunkt "function handle callbacks" beschrieben: Ein Callback, der als {@Fcn, A, B, C, etc} definiert wird, führt zu folgendem Aufruf:
switch h
case S.pb(1)
EditHandle = testfunktion3;
set(S.pb(2), 'UserData', EditHandle);
case S.pb(2)
EditHandle = get(s.pb(2), 'UserData') if ~isempty(EditHandle) delete(ancestor(EditHandle, 'figure'));
end end
In Deiner "testfunktion3" belegst Du die Variable "S.ed(1)". Es wird aber nicht klar, wozu das dienen soll. Speicherst Du "S" denn irgendwo in Zeilen, die Du nicht mit angezeigt hast?
Ich kann nichts damit anfangen, dass Du ein Edit-UICONTROL unbedingt "editfenster" nennen möchtest. Ich hatte darauf hingewiesen, dass solche ausgedachten Namen in einem öffentlichen Forum Verwirrung stiften, während die offiziellen Matlab-Ausdrücke allen bekannt sein dürften.
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
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.