Verfasst am: 28.04.2009, 16:26
Titel: findobj bei uipanels
Hallo,
ich hab in einem GUI mehrere uipanels wo auch mehre Axes stehen.
Ich möchte z. B in einem bestimmten uipanel unter einem bestimmten axes was plotten. was ich weiss, man muss das handle für das axe finden und dann auf CurrentAxes in dem figure einstellen, anschließend wird geplottet.
Hier in diesem Falle (mit uipanels) wird auf das letzte AXe zugegriffen und da geplottet bzw. das handle wird nicht gefunden!
Wie gehts es bei verschiedenen Axes in verschiedenen uipanels?
ich schicke dir ein Programm(dualcursor), vom dem ich dir schon mal erzählt habe. start z.B das kleine Code in smallProgramm.
Meine Frage ist: .Wenn ich set(gcf,'CurrentAxes',handles.Axis1); rauslösche, wird es geplottet(aber im letzten Axes), und die Balken sind schön verschiebbar.
Aber wenn ich set(gcf,'CurrentAxes',handles.Axis1); lasse, wird es im ersten Axes geplottet aber die Balken kann man dann nicht verschieben.
Mein neuestes Problem betrifft genau dieses Thema.
Und zwar habe ich 3 Axes. Diese haben natürlich jeweils einen 'Tag'.
Wenn ich dann im jeweilgen Plotbefehl das Handle der betreffenden Axes übergebe klappt der plot auch.
Code:
function Graphiken(Zielpunktspeicher, welcher, was)
ind = strmatch( welcher, Zielpunktspeicher(:,4), 'exact');
Das Problem anders zu lösen ist nicht schwer und war auch nicht der Grund meiner Anfrage.
(Ich habe die handles der axes1, 2 und 3 verspeichert und spreche damit die axes ohne findobj(..) an.)
Vielmehr würde mich interessieren, warum die 'Tag'´s verschwinden.
Womöglich hat dies auch schon jemand beobachtet?
Zu Deinem Vorschlag:
1. Es existieren einige GUI- Fenster. Die Funktion zum Plotten rufe ich in Fenster B auf. Geplottet wird jedoch in Fenster A. Somit kann ich "gcf" nicht verwenden.
Dabei gehen die 'Tags' nicht verloren, glaub ich zumindestens.
Gruß,
Jose
_________________
Simulation
wissbegierig_neuling
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 28.06.2011, 20:05
Titel:
Hi,
ich habe das Beispiel aus small.zip ausprobiert und möchte es bei meiner Gui verwenden. Dort habe ich eine GUI mit mehren Popupmenues, über welche ich Signale auswähle und diese in einem axes(Plot_Fenster_1) darstellen lasse. Nun möchte ich gerne, wenn ich ein radiobutton2 drücke und dieser den Wert eins erhält, dass das skrit dualcursor abläuft. Denn Aufruf habe ich schon verändert. Doch scheint dies noch nicht korrekt zu sein.
Code:
ifget(handles.radiobutton2,'Value') ==1
htab=neue_grapfische_Oberflaeche;
% get handles of panels
hpanel = getappdata(htab(1),'panels');
% found for example handles for first axes (panels)
handles.Axis1=findobj(hpanel(1),'Tag','Plot_Fenster_1');
% set CurrentAxes set(gcf,'CurrentAxes',handles.Axis1);
dualcursor;
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.