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

Automatische Skalierung der Achse auf Zehnerpotenz

 

Clod
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2012, 16:41     Titel: Automatische Skalierung der Achse auf Zehnerpotenz
  Antworten mit Zitat      
Hallo,
ich habe einen Code der eine große Anzahl an Messdaten in einer Schleife verarbeitet.
Dabei variieren die Werte allerdings über mehrere Zehnerpotenzen zwischen den verschiedenen Dateien, daher ist keine einheitliche Skalierung der Plots möglich.
Um dennoch ein Mindestmaß an Vergleichbarkeit zu gewährleisten, möchte ich das die Plots mit einer Skala von 1 bis 10 in der entsprechenden Potenz beschriftet werden.
Z.B.
Plot A Ytick: 1E1, 2E1, 3E1, ..., 10E1
Plot B Ytick: 1E6, 2E6, 3E6, ..., 10E6

Mein Momentaner Ansatz:
Da der Code in einer Schleife durchlaufen wird muss MATLAB jedes mal neu erfragen in welcher Größenordnung sich der maximale Wert befindet. Mit einer if-Abfrage.
Daraufhin werden die Labels manuell mit einer weiteren if -Abfrage beschriftet.

Für die, meiner Meinung nach, simple Aufgabe ist das ein ziemlich langer und unflexibler Code. Ich bin mir sicher das geht auch einfacher. Weiß jemand wie?
Vielen Dank für alle Ratschläge.
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: 17.09.2012, 10:16     Titel: Re: Automatische Skalierung der Achse auf Zehnerpotenz
  Antworten mit Zitat      
Hallo Clod,

Die Beschreibung als Text erlaubt keine wirklichkeitsnahe Einschätzung der Komplexität Deines Codes.

Üblicherweise sind logarithmische Skalen geeigent um Messdaten zu vergleichen, die über viele Größenordnungen variieren.
Du könntest auch alle Messdaten durch das jeweilige Maximum teilen, so dass Du "normierte" Diagramme erhälst.
Eine weitere Methode ist FEX: Dynamic tick label format.
Statt die Zehnerpotenz in einer Reihe von IF-Abfragen zu testen, kannst Du auch einfach numerisch testen:
Code:

Danach kannst Du 10^Mag entweder als Limit oder wieder zum Normieren verwenden.

Das manuelle Setzen der Tickmarks ist tückisch. Bereits ein PRINT kann die Auflösung verändern und damit neue Ticks hinzufügen, die dann das falsche Format haben.

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2012, 10:44     Titel: Re: Automatische Skalierung der Achse auf Zehnerpotenz
  Antworten mit Zitat      
Jan S hat Folgendes geschrieben:
Code:

Vielen Dank, das hilft mir schon einen gewaltigen Schritt weiter. Ich dachte mir schon, dass das mathematisch gehen muss.
Eine logarithmische Auftragung habe ich bewusst vermeiden wollen.
Aber ich werde mir das FEX mal genauer anschauen.
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.