Verfasst am: 21.07.2008, 14:27
Titel: 2 axes in gui beschreiben??
hallo
in einer funktion möchte ich 2 axes eines gui beschreiben. es wird aber immer nur eines beschrieben und zwar mit dem letzten das ich ausgegeben habe. ich denke ich muss irgendwie mit dem nir den hjandles zwischen den axes hin und her schalten, schaff das aber nicht da ich in der funktion ja kein handles habe. wenn ich das handle an die fkt übergeben bekomme ich die meldung "??? Attempt to reference field of non-structure array."
wie liegen denn die Achsen? Übereinander oder nebeneinander? Normalerweise kommst du nich an handles vorbei (woher soll Matlab auch wissen wohin dein Plot o.ä. kommen soll?). Poste doch bitte mal ein Minimalbeispiel. Vielleicht hilft dir ja schon
weiterhilft. Wenn Deine Axes beispielsweise axes1 und axes2 heissen, sieht das dann in etwa so aus:
Code:
% ... Programmcode axes(handles.axes1); % Auswahl der ersten Axes plot(); % Plot für erste Axes % weiterer Programmcode axes(handles.axes2); % Auswahl der zweiten Axes plot(); % Plot wird in zweite Axes gezeichnet % weiterer Programmcode
das problem ist das ich das handle nicht als übergabe parameter erhalte. der Tag meiner diagramme ist "signal" und "fft". sie befinden sich in einem gui untereinander.
das Problem scheint wohl zu sein dass htest.signal bzw. htest.fft gar nicht existieren! Du weist der Variable htest das Handle zu der Figure zu, der Wert bzw. alle Felder die htest bisher hatte, werden gelöscht. Du könntest bspw auch subplot verwenden.
wenn diese funktion aber erneut aufgerufen wird kommt ein fehler und zwar:
??? Error using ==> axes
Invalid object handle.
also der programmabschnitt funktioniert nur das erste mal, dann ist das s.handle (hui2=Empty matrix) ungültig. muss man die axes irgendwie wieder freigeben?
mfg
Edit: Siehe den Hinweis von dib0r bezüglich der Code-Formatierung.
mfg nschlange
benutze bitte für Codeschnipsel auch die Code umgebung, das macht das ganze übersichtlicher
Zu deinem Problem: Anscheinend existieren die Achsen beim zweiten Aufruf nicht mehr (oder haben keine entsprechendes Tag), sonst würdest du sie finden.
Was spricht eigentlich dagegen, den Achsen handles zuzuweisen und die dann anzusprechen?
hallo
gegen handles zuweisen spricht nix, außer dass ich nicht weiß wie ich das mache. habe da ein fettes "Matlab kompakt" buch, mit sehr fielen nützlichen informationen, aber wenn ich nicht weiß wie eine funktion heißt kann ich genauso die berühmte nadel im heuhaufen suchen
vielleicht kannst du mir das posten
danke, mfg
dem Axes oder auch einer figure einen Handle zuweisen, bedeutet, dass man denen eine Variable zuordnet:
Code:
% Zuweisung eines handels zu einer figure:
h1 = figure('Name','Testfigure');
% jetzt kann die Figure direkt über den handle angesprochen werden: plot(h1,[1:5],[1:5].*2);
% Zuweisung eines handels zu einer axes:
h2 = axes('Parent',ha,'Visible','on',...
'Units','normalized','Position',[.25,.25,.5,.5]);
% ansprechen erfolgt analog zu oben: plot(h2,[1:5],[1:5].*2);
hi
besten dank, habs jetzt geschafft.
hät eigentlich auch selber draufkommen können.
mfg
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.