WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Axes "verliert" Tag

 

shnegg
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 15.02.11
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 14.04.2011, 10:16     Titel: Axes "verliert" Tag
  Antworten mit Zitat      
Hi,
ich hab eine Gui Programmiert, in dem ich zwei Logos anzeigen möchte.
Ich lade ein Bild in eine axes ein. So weit funktioniert es auch

Code:

function axes_FH_CreateFcn(hObject, eventdata, handles)
imgFH = imread('FHL.png','png');     % Einlesen der Grafik
imshow(imgFH)
image (imgFH);axis image;             % Grafik ausgeben, Grafik entzerren
axis off;
 


Mein Problem ist, das die axes häuftig ihren Tag verliert. Es steht dann dort nix mehr drin, und das Logo wird dann auch nicht angezeigt.
Wenn ich den Tag wieder ins Axes schreibe, dann funktioniert es wieder.
Weiß eventuell jemand an was es liegen könnte?

Grüßerle,
Shnegg
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.04.2011, 15:45     Titel: Re: Axes "verliert" Tag
  Antworten mit Zitat      
Hallo shnegg,

AXES-Objekte verlieren ihren Tag nicht. Er muss schon explizit gelöscht werden. Wahrscheinlicher ist es aber, dass Du gar nicht den Tag löschst, sondern ein neues AXES-Objekt erstellst, das dann einen leeren Tag hat.

In Deinem Code-Beispiel taucht gar kein Tag auf. Wieso nimmst Du dann an, dass das Logo in einem bestimmten AXES-Objekt erscheint? Und wieso vermutest Du, dass das Nicht-Erscheinen des Logos etwas mit dem Tag zu tun hat?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
shnegg
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 15.02.11
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 14.04.2011, 17:12     Titel:
  Antworten mit Zitat      
Mein axes heißt: axes_FH
und ist dann ab und an einfach weg, und ich muss es neu hinschreiben
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 15.04.2011, 01:01     Titel:
  Antworten mit Zitat      
Hallo,

das hilft auch nicht weiter. Kommt eine Fehlermeldung, wenn ja welche?
Am besten du postest ein lauffähiges Minimalbeispiel deines Problems.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.04.2011, 15:14     Titel:
  Antworten mit Zitat      
Hallo shnegg,
Zitat:
Mein axes heißt: axes_FH und ist dann ab und an einfach weg, und ich muss es neu hinschreiben

Was bedeutet das? Meinst Du der Tag des AXES-Objektes ist
"axes_HF", oder ist das die Variable die den Handle beinhaltet?
Was heißt "ich muss es neu hinschreiben"? Was ist dabei "es" und was ist "hinschreiben"?

Ich garantiere Dir, dass das AXES-Objekt nicht ohne Grund von Zeit zu Zeit verschwindet, und auch der Tag wird nicht von Matlab gefressen. Alles was geschieht, steht explizit im Programm drin. Also suche einfach die Zeile, in der das AXES-Objekt geändert oder gelöscht wird. Ein paar Breakpoints im Debugger werden Dir helfen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.04.2011, 15:33     Titel:
  Antworten mit Zitat      
Jan S hat Folgendes geschrieben:
und auch der Tag wird nicht von Matlab gefressen. Alles was geschieht, steht explizit im Programm drin.
Gruß, Jan


Hallo Jan da irrst du dich, bei IMAGE/IMSHOW/IMAGESC/PLOT wird AXES zurückgesetzt
Und dabei wird wohl der Tag gelöscht, finde ich ehrlich gesagt ein Fehlverhalten von Matlab.
Code:

load clown.mat
h_fig = figure();
h_ax  = axes()
set(h_ax,'Tag','mein_tag')
disp([Tag: get(h_ax,'Tag')])
image(X)
disp([Tag: get(h_ax,'Tag')])
colormap(map)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.04.2011, 15:47     Titel: Re: Axes "verliert" Tag
  Antworten mit Zitat      
shnegg hat Folgendes geschrieben:

Mein Problem ist, das die axes häuftig ihren Tag verliert. Es steht dann dort nix mehr drin, und das Logo wird dann auch nicht angezeigt.
Wenn ich den Tag wieder ins Axes schreibe, dann funktioniert es wieder.
Weiß eventuell jemand an was es liegen könnte?

Grüßerle,
Shnegg


Warum benutzt du den Tag? Oder besser gesagt warum ist deine Anzeige von Tag abhängig und nicht von Handles?
Private Nachricht senden Benutzer-Profile anzeigen
 
shnegg
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 15.02.11
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 16.04.2011, 12:29     Titel:
  Antworten mit Zitat      
Der Tag von meinen axes für die Logos wird auch nur dann gelöscht wenn ich mir die Gui mit guide ... in der Konsole aufrufe. Rolling Eyes Rolling Eyes

Grüßerle
Shnegg
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 17.04.2011, 00:10     Titel:
  Antworten mit Zitat      
Hallo,

wenn du nicht EXPLIZIT angibst WAS du WIE gemacht hasst, am besten wie bereits gesagt anhand eines lauffähigen Minimalbeispiels, welches das Problem zeigt, wird dir hier wohl niemand helfen können. Aus deinem im 1. Post geposteten Code kann man jedenfalls auf nix schliessen.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.04.2011, 11:44     Titel:
  Antworten mit Zitat      
Hallo denny,
Jan S hat Folgendes geschrieben:
und auch der Tag wird nicht von Matlab gefressen. Alles was geschieht, steht explizit im Programm drin.
Gruß, Jan

denny hat Folgendes geschrieben:
Hallo Jan da irrst du dich, bei IMAGE/IMSHOW/IMAGESC/PLOT wird AXES zurückgesetzt

Zum Glück irre ich mich nicht. Mit dem Befehl AXES erstellst Du ein Objekt, bei dem explizit die Eigenschaft "NextPlot = replace" eingestellt ist. "NextPlot = add" behält den Tag. Man kann es entweder direkt setzen, oder den HOLD Befehl verwenden:
Code:
load clown.mat
h_fig = figure();
h_ax  = axes()
disp(get(h_ax, 'NextPlot'))  % replace
set(h_ax,'Tag','mein_tag', 'NextPlot', 'add')
disp([Tag: get(h_ax,'Tag')])  % mein_tag
image(X)
disp([Tag: get(h_ax,'Tag')])  % mein_tag !!!
colormap(map)
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.