Runden auf eine Potenz von 10

8

Ich habe eine Variable, tauMax , die ich nach oben auf die nächste Zehnerpotenz (1, 10, 100, 1000 ...) runden möchte. Ich verwende den folgenden Ausdruck, um die nächstliegende Ganzzahl zum Maximalwert im Tau-Array zu finden. Ich finde den Maximalwert, weil ich versuche, die Zehnerpotenz zu berechnen, die die X-Achse sein sollte. In dieser Ursache ist tauMax gleich 756, also möchte ich einen Ausdruck haben, der entweder 1000 oder 3 (für 10 ^ 3) ausgibt.

%Vor%

Ich würde wirklich jede Hilfe schätzen!

    
Alex Nichols 20.07.2011, 22:41
quelle

3 Antworten

23

Da du Base 10 sprichst, kannst du einfach log10 verwenden, um die Anzahl der Ziffern zu erhalten.

Wie wäre es mit:

%Vor%     
b3. 20.07.2011, 22:47
quelle
3

Ich mache Matlab nicht wirklich, aber der übliche Weg, dies in jeder Sprache zu tun, die ich kenne, ist: nimm die Logarithmusbasis 10, dann richte diese Zahl auf die nächste ganze Zahl auf und berechne dann 10 Nummer. In Python:

%Vor%     
steveha 20.07.2011 22:47
quelle
0

Sie können auch die Quelle der integrierten Matlab-Funktion nextpow2 (N) ansehen (einfach nextpow2.m öffnen), um zu sehen, wie die Ingenieure von Mathworks dies für eine Zweierpotenz implementiert haben und eine neue Funktion erstellen, die diese Quelle an a anpasst Macht von 10.

Ссылка

    
Hermann 23.07.2014 13:50
quelle

Tags und Links