Verfasst am: 31.03.2008, 12:02
Titel: Mehrere Axes bei neustart des Programms "aufräumen&quo
Hallo miteinander,
und wiedermal plagt mich eine Frage.
Ich habe in meiner GUI 4 plots in 4 axes verteilt. Jetzt habe ich das Problem, wenn ich mein Programm neu starte, dass dann immer noch die alten Plots angezeigt werden. Ich möchte aber gerne, dass bei Programmstart die Axes leer sind.
Moin,
ich habe auch ein kleines GUI mit mehreren Axes, in denen ich Plots darstellen lasse.
Allerdings sind diese bei mir standardmäßig leer, wenn ich das Programm starte!
Wie definierst du denn die Axes bzw. wie lässt du die Plots darin anzeigen?
Allerdings bin ich noch nicht ganz zufrieden damit. Wie ich jetzt rausgefunden habe, übernimmt Matlab immer als aktuelle axes diejenige, auf die ich gerade im GUI klicke.
Gibt es einen Weg, das zu umschiffen, also die axes als nicht anklickbar zu machen?
Gruß, MorrisThorne
_________________
*Oink oink, kommt her, ihr Schweinchen! Oink oink!*
Speicherst du die Plotdaten irgendwie ab und lässt sie dann plotten oder was meinst du mit "TAG versehen"?
Denn ich kann mir im Moment nicht in Ansätzen erklären, warum Matlab die Axes beim Programmstart füllen sollte. Denn im Normalfall sollten der function-Workspace ja beim beenden des Programms gelöscht werden, oder irre ich mich da?!
_________________
Du kannst im GUIDE deine Objekte auswählen und platzieren, also graphisch deine GUI arrangieren. Wenn du dann auf die Eigenschaften eines Objekts klickst, kannst du den Objekten eine ID zuordnen, einen sogenannten Tag. Mit diesem spreche ich dann in meinem *.m-File die Objekte an, also z.B. eben
Nein, den Plot mache ich erst, nachdem ich die Daten eingelesen habe, bzw. nachdem ich die Checkbox aktiviere/deaktiviere (umschalten zwischen semilog-plot und linearem plot) in einer extrafunktion, also in etwa so:
function readData(hObject, eventdata, handles)
%Einlesecode fürs Datenfile und Verteilung der Daten in handles.Data%
.
.
.
linearDataPlot(handles.data(:,1),handles.data(:,2))
Hm, komisch.
Ich denke wie steve, dass alle Daten in einer Funktion nach deren Ende gelöscht werden. Rufst Du nicht doch irgendwo die Plot-Funktion zu früh auf? Oder lädst Du einen früher gespeicherten Plot?
Kannst Du ein Beispiel posten, an dem das nachvollziehbar wird?
_________________
Hm, also manchmal ist die Welt verrückt, und Computer noch viel verrückter.
Im Workspace habe ich gestern nachgesehen, da waren keine Daten drin. Auch nach mehrmaligem Neustart des Programms hat das ganze mit der funktion "clearAllAxes" gestern noch wunderbar funktioniert, also so wie ich es ja eigentlich wollte (Diagramme geleert!).
Heute Rechner angemacht, Programm gestartet: Fehlermeldung,
sprich, heute kann er mit der Funktion nichts anfangen. Also habe ich sie auskommentiert, und siehe da, die Achsen sind bei jedem Neustart frisch aufgesetzt, also ohne schon vorhandene Kurven...
Kurzum, ich verstehe es nicht, was gestern falsch lief, heute tut er jedenfalls genau das, was ihr beide gesagt habt (und was mir auch logisch erscheint).
Trotz allem vielen dank mal soweit.
Die andere Frage, die mir nach wie vor noch offen blieb ist: wie kann ich denn deaktivieren, dass bei anklicken im GUI die Axes gewchselt werden? sprich, ich möchte mir dei axxes nur anzeigen lassen, aber nix drin rumklicken können.
Gruß, MorrisThorne
_________________
*Oink oink, kommt her, ihr Schweinchen! Oink oink!*
Hallo,
in Matlab-Hilfe scheint die Axes-Property HitTest das richtige für dich zu sein
Zitat:
HitTest {on} | off
Selectable by mouse click. HitTest determines
if the axes can become the current object (as returned by the gco command
and the figure CurrentObject property) as a result of a
mouse click on the axes. If HitTest is off,
clicking the axes selects the object below it (which is usually the figure
containing it).
also muss du über set(axesHandle,'HitTest','off') setzen
Zuletzt bearbeitet von denny am 01.04.2008, 16:41, insgesamt einmal bearbeitet
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 01.04.2008, 16:36
Titel:
Danke Dennys, hat funktioniert, war genau das, was ich gebraucht habe.
Gruß, MorrisThorne
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
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.