|
|
Automatische Skalierung der Achse auf Zehnerpotenz |
|
Clod |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 14.09.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.09.2012, 16:41
Titel: Automatische Skalierung der Achse auf Zehnerpotenz
|
 |
|
 |
|
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.
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 17.09.2012, 10:16
Titel: Re: Automatische Skalierung der Achse auf Zehnerpotenz
|
 |
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:
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
|
|
|
Clod |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 14.09.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.09.2012, 10:44
Titel: Re: Automatische Skalierung der Achse auf Zehnerpotenz
|
 |
Jan S hat Folgendes geschrieben: |
|
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.
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|