Rundung auf eine Leistung von 10
Ich habe eine variable, tauMax
, möchte ich Runde bis auf die nächste Zehnerpotenz(1, 10, 100, 1000...). Ich bin unter den unten angegebenen Ausdruck zu finden, den nächsten ganzzahligen Wert der max-Wert in der tau-array. Ich finde den max-Wert, weil ich bin versucht zu berechnen, die Kraft von zehn, das sollte die x-Achse cutoff. In dieser Ursache, tauMax gleich 756,, so möchte ich einen Ausdruck, der die Ausgänge entweder 1000, - oder 3(10^3).
tauMax = round(max(tau));
Ich würde wirklich zu schätzen jede Hilfe!!!
- Sie könnte dies auch tun, ich glaube, basierend auf der Anzahl der Ziffern.
- Das ist eine tolle Idee. Weißt du, welchen Befehl ich verwenden würde zu finden, die Anzahl der Ziffern in einer Zahl angegeben?
- Nichols - Da Sie sprechen Basis 10 verwenden Sie einfach
log10
(siehe meine Antwort unten). - Scheint einige verschiedene Möglichkeiten, dies zu tun: mathworks.co.jp/matlabcentral/Antworten/..., aber die andere Methode, die vielleicht einfacher.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie sprechen base 10, Sie konnte einfach
log10
um die Anzahl der stellen.Wie etwa:
math
wie @steveha auch AntwortenIch nicht wirklich tun, Matlab, aber der übliche Weg, dies zu tun, in irgendeiner Sprache, die ich weiß, ist: nehmen Sie den Logarithmus zur Basis 10, dann Runde die Zahl auf die nächste Ganzzahl, dann berechnen Sie 10 bis die macht der Zahl. In Python:
Könnten Sie auch einen Blick auf die Quelle der eingebauten Matlab-Funktion nextpow2(N) (öffnen Sie einfach nextpow2.m), um zu sehen, wie Mathworks-Ingenieure implementiert, das für eine Potenz von 2 ist, und erstellen Sie eine neue Funktion die Anpassung dieser Quelle zu einer Leistung von 10.
http://www.mathworks.it/it/help/matlab/ref/nextpow2.html