Verfasst am: 22.10.2012, 13:44
Titel: Ticks in SI Einheiten unterteilen / Use of SI-Units in Plots
Hallo zusammen,
beim Arbeiten mit naturwissenschaftlichen Themen ist sehr schick wenn man sich bei der Skalierung von Grafiken oder bei Ausgaben von Werten auf die SI-Basis-Einheiten stützen könnte.
SI-BASIS EINHEITEN
...
10^0
10^3 - kilo
10^6 - mega
10^9 - giga
...
Immer wieder stoße ich auf diese Problematik und mein Workaround ist ein umständliches nachbessern irgendwelcher XTicks oder basteln einer Case-Abfrage für sehr eingeengte Wertebereiche.
Hat jemand eine Idee solche Zahlen generisch auf die nächste SI-Basiseinheit zu konvertieren?
Gibt es das bereits?
Im nächsten Schritt wäre es dann ein Traum einen solch veränderten Zahlenstrahl, beispielsweise erhalten durch
get(gca, 'XTick')
ebenso gleich in die XTickLabels zurück zu spielen
Verfasst am: 22.10.2012, 22:33
Titel: Re: Ticks in SI Einheiten unterteilen / Use of SI-Units in P
Hallo dEliRio,
Dazu gibt es natürlich Tools. Allerdings ist "bei der Skalierung von Grafiken oder bei Ausgaben von Werten" ein sehr allgemeine Beschreibung des Problems.
Es ist schwer darauf konkret zu antworten.
Zitat:
Im nächsten Schritt wäre es dann ein Traum einen solch veränderten Zahlenstrahl, beispielsweise erhalten durch "get(gca, 'XTick')" ebenso gleich in die XTickLabels zurück zu spielen
PERFEKT!!!!! Exakt nach so etwas in die Richtung habe ich gesucht, dieses Trickreiche "rausfinden" der passenden Basis Einheit mittels floor und 10log etc... und diese rumtrickrserei mit den Zellstrings hat mir gefehlt, bzw. war das der Schubs in die richtige Richtung das ich mir selber weiterhelfen kann!!!
Nur mal quick&dirty ein Beispiel was ich erreichen wollte, bzw. in welche Richtung ich mit dieser Formulierung hier wollte.
Zitat:
Im nächsten Schritt wäre es dann ein Traum einen solch veränderten Zahlenstrahl, beispielsweise erhalten durch "get(gca, 'XTick')" ebenso gleich in die XTickLabels zurück zu spielen
Mit
Code:
xTicks = get(gca,'Xtick');
xNewTicks = ToScientific(xTicks, 2);
for iNTindx = 2:length(xNewTicks)-1 ifstrcmp(xNewTicks{iNTindx}(end-2:end),xNewTicks{iNTindx+1}(end-2:end))
xNewTicks{iNTindx}(end-2:end) = [];
end end
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.