|
|
axes(handle) funktioniert nicht. |
|
Mircode |
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 06.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.03.2009, 15:54
Titel: axes(handle) funktioniert nicht.
|
|
|
|
|
Hi @ all.
Ich benutze MATLAB 7.1 R14.
Ich habe ein(e) GUI erstellt, in der ich einen Plot darstellen möchte. Über Slider kann man Parameter ändern, die den Plot ändern sollen. Die Berechnung ist ziemlich aufwändig und ich möchte sie nicht bei jedem Slider-callback durchführen sondern nur 5x pro Sekunde. Also mache ich es mit einem Timer.
Beim Laden des/r GUI, passiert folgendes:
Die Timer-Callback-Funktion sieht so aus:
In dem externen m-File soll der Plot durchgeführt werden:
Beim ersten Timer-Event passiert das erwartete und erhoffte:
axes-handle (parent function) :
221.0052
current:
5.0054
wanted:
221.0052
current which should now be wanted:
221.0052
again wanted:
221.0052
Beim zweiten Aufruf jedoch:
axes-handle (parent function) :
221.0052
current:
258.0052
wanted:
221.0052
current which should now be wanted:
258.0052
again wanted:
221.0052
Wenn ich danach Lines und Texts male, werden die beim ersten Aufruf tatsächlich dorthin gemalt, wo ich sie haben will. Beim zweiten wird ein neues Figure-Fenster geöffnet.
Wenn ich allerdings
in dem externen m-File benutze, zeichnet er ins richtige Feld. Zugriff ist also prinzipiell gewährleistet, eigentlich
Kann mir jemand sagen, warum der Axes-Befehl nicht so funktioniert, wie ich erhoffte? Noch cooler wäre natürlich eine Lösung.
Heißt es eigentlich die oder das GUI? Das Interface, aber alle sagen die...
Vielen Dank im Voraus!
MfG Mirko
|
|
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.03.2009, 17:21
Titel:
|
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.03.2009, 17:35
Titel:
|
|
Ich hatte auch Problemem mit dem Plotten über einen Timer...
Schreib mel den plot-Befehl nicht mit
sondern mit
Und bei mir wurde jedesmal, wenn ich sowas wie axes(handles.axes1,'ytick'....) im Code hatte, eine neues figure geöffnet. Also alles durch set(handles.axes1,'ytick'....) ersetzt und so klappt es bei mir nun
MfG
|
|
|
Mircode |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 06.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.03.2009, 09:43
Titel:
|
|
Hallo! Vielen Dank für die Antworten, hilft leider beides nicht.
@ Gast2
plot(handles.axes1,[x1 x2],[y1 y2]...) funktioniert ja eben komischerweise, wie ich bereits geschrieben hab.
Aber
axes(axes_handle)
plot([x1 x2],[y1 y2])
sollte ja das selbe machen, nur axes(axes_handle) funktioniert irgendwie nicht, wie man an den gca-Ausgaben sehen kann. Und ich möchte auch den text-Befehl benutzen, wo man parent nicht angeben kann sondern nur eine Ausgabe in das aktuelle axes-Objekt möglich ist.
MfG Mirko
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 09.03.2009, 10:38
Titel:
|
|
Moin,
die beiden Zeilen sind aber nicht unbeding das gleiche, oder?
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Mircode |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 06.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.03.2009, 11:20
Titel:
|
|
|
|
|
Na ich dachte eigentlich schon das sei das gleiche...
Aber das erste geht, das zweite nicht.
EDIT:
So, es geht noch weiter. Ich möchte bei Betätigen eines Buttons eine Simulink-Simulation aufrufen mit sim(). Darin sind embedded Matlab Blöcke, die in jedem Frame Plots zeichnen sollen und auch ein XY-Graph-Block.
Wenn ich aus dem MATLAB-Hauptfenster sim() benutze geht alles, aus dem GUI raus wird im ersten Frame der Plot mit ins XY-Graph-Fenster gemalt und dann gibt es folgenden Fehler:
Error in ==> sfunxy>mdlUpdate at 169
set(ud.XYAxes, ...
Error in ==> sfunxy at 33
sys = mdlUpdate(t,x,u,flag,ax,blockHandle,varargin{:});
??? Error using ==> sim
--> Error in 'impedancecontrol_GUI/XY Graph/sfunxy' while executing M-File S-function 'sfunxy', flag = 2 (update), at time 0. MATLAB error message:
Invalid handle object.
--> Error evaluating 'StopFcn' callback of XY scope. block (mask) 'impedancecontrol_GUI/XY Graph'. Invalid handle object.
Diesmal glaube ich fast, dass das Problem nicht an der Tastatur sitzt.
|
|
|
Mircode |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 06.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.03.2009, 11:13
Titel:
|
|
Ok, hab jetzt bei text einfach 'Parent' mit angegeben. Damit gehts. axes() funktioniert immer noch nicht.
|
|
|
|
|
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.
|
|