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

Achsen bei Imagesc drehen

 

gui_einsteiger
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.03.12
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 14.08.2013, 12:31     Titel: Achsen bei Imagesc drehen
  Antworten mit Zitat      
Hallo,

ich plotte mir eine Graphik über Imagesc. Die Achsen hierfür gebe ich als Vektor vor. Funktioniert soweit auch.

Nun drehe ich mein Bild um 180° und möchte auch meine Achsen drehen. Die Vektoren manuell mit fliplr zu drehen ist ja kein Problem, jedoch erkennt Matlab nun, dass der erste Wert des Vektors höher ist wie der letzte und wendet wiederum fliplr an und meine Achsenbeschriftung ist wieder so, wie sie vorher war.

Kann mir jemand sagen wie ich es schaffe, dass der Wert meiner x-Achse an der linken Seite höher ist als an der rechten?

Vielen Dank

gui_einsteiger
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 14.08.2013, 12:40     Titel:
  Antworten mit Zitat      
hm vieleicht mit xticklable manuell machen....
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 14.08.2013, 13:23     Titel:
  Antworten mit Zitat      
Das geht mit:

Code:
set(gca,'XDir','reverse');


MfG - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 14.08.2013, 13:35     Titel:
  Antworten mit Zitat      
Sorry, das war falsch!!!

Damit wird gleichzeitig das Bild gedreht. Habe damit gleich einen Fehler in einer Demo gefunden.

Zerknirscht - Huberts Embarassed
Private Nachricht senden Benutzer-Profile anzeigen
 
gui_einsteiger
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.03.12
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 14.08.2013, 13:51     Titel:
  Antworten mit Zitat      
Hallo,

arbeiten mit
Code:
set(gca,'XDir','reverse');

geht leider nicht, da mir dies auch immer gleich meine Graphik um die Achse dreht. Es lässt sich damit leben, jedoch muss das Bild dann auch immer wieder manuell gedreht werden.

Gibt es hierfür keinen anderen Ansatz?
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 14.08.2013, 13:53     Titel:
  Antworten mit Zitat      
Lese mal meine Antwort vor deiner!
Private Nachricht senden Benutzer-Profile anzeigen
 
gui_einsteiger
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.03.12
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 14.08.2013, 14:00     Titel:
  Antworten mit Zitat      
habs erst gesehen, nachdem ich geschrieben hatte, war keine Absicht!

Hab jetzt nochmal versucht die Achsen über axis ([250 150 250 150]) vorzugeben, doch auch hier kommt immer die Fehlermeldung, dass xmin kleiner sein muss als xmax
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 14.08.2013, 14:30     Titel:
  Antworten mit Zitat      
Es geht doch. Weil dir der set-Befehl das Bild spiegelt, musst du das Bild vorher noch einmal spiegeln:

Code:
X1=X(:,end:-1:1)
imagesc(X1); set(gca,'XDir','reverse');


Irgendein Befehl muss ja dazwischen, um deine hohen Werte auf die linke Seite zu bringen.
Private Nachricht senden Benutzer-Profile anzeigen
 
gui_einsteiger
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.03.12
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 20.08.2013, 09:36     Titel:
  Antworten mit Zitat      
In x-Richtung funktioniert das ja, wenn mal je nach winkel immer noch die Matrix voher spiegelt, ist zwar relativ unschön, aber geht.


Habe ich auch die Möglichkeit, die y-Achse zu spiegeln?
Code:
Habe es mal mit set (gca,'YDir','reverse');

versucht, jedoch tut sich da bei mir nichts.
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 20.08.2013, 09:53     Titel:
  Antworten mit Zitat      
Also, mit unschön ist das immer so eine Sache. Ich nehme immer das, was funktioniert. Ich habe schon darauf hingewiesen, dass du vorher die Matrix spiegeln musst. Daher hilft YDir auch nicht weiter. Wenn du dir den dazugehörigen Befehl einmal genauer ansiehst,

Code:
X1=X(:,end:-1:1)


ist eigentlich klar, wie man in Y-Richtung spiegelt:

Code:
X1=X(end:-1:1,:)


Handelt es sich um ein Farbbild, wird aus dem 1. Beispiel:

Code:
X1=X(:,end:-1:1,:),


Für die Y-Richtung müsste das jetzt auch klar sein. Wenn du nur ein S/W-Bild hast, kannst du mit "rot" drehen. Für Funktionen, die mehrfach aufgerufen werden, ist es eigentlich egal, wie man das macht. Eine mehr oder weniger Arbeit durch unterschiedliche Befehle muss jeder selber beurteilen.
Private Nachricht senden Benutzer-Profile anzeigen
 
gui_einsteiger
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.03.12
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 20.08.2013, 10:07     Titel:
  Antworten mit Zitat      
ich glaube, da habe ich mich etwas undeutlich ausgedrückt. Meine Ausgabe am Bildschirm ist so, wie ich es mir wünsche (d.h. meine Matrix wird richtig angezeigt)

Ich möchte jedoch, dass auch bei der y-Achse der höchste Wert oben und der niedrigste Wert unten steht.

Wenn ich über
Code:
set(gca,'YDir','reverse')

gehe, müsste ja eigentlich meine Matrix und meine Achse gedreht werden. Nur passiert hier nichts. Wie ich diese dann wieder passend spiegeln könnte ist schon klar.
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 20.08.2013, 10:24     Titel:
  Antworten mit Zitat      
Ja, da habe ich dich falsch verstanden. Wenn es für YDir eine Lösung gäbe, würde es auch für XDir eine Lösung geben und man müsste nicht den Umweg über die Spiegelung machen. Das scheint mir das Problem zu sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
gui_einsteiger
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.03.12
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 02.09.2013, 13:41     Titel:
  Antworten mit Zitat      
so hab eine Lösung gefunden:

die y-Achse lässt sich folgendermaßen umdrehen:
Code:
set(gca,YDir,'normal)


dreht man das Bild vor dem Plot mit imagesc noch um:

Code:
akt_picture=flipud(akt_picture)


so bekommt man das gleiche Bild nur mit umgekehrter y-Achse geplottet.
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.