log2() only works with double types?
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
atharva aalok
il 24 Ott 2021
Commentato: atharva aalok
il 24 Ott 2021
log2() seems to only work with 'double' types. It throws error when argument is int64.
num = 10000;
d = floor(num / 7);
a = log2(d);
disp(a);
d = int64(num / 7);
b = log2(double(d));
disp(b);
b = log2(d);
disp(b);
0 Commenti
Risposta accettata
Simon Chan
il 24 Ott 2021
Check MATLAB documentation and this fucntion log2 supports type single or double as the input argument type.
3 Commenti
Steven Lord
il 24 Ott 2021
The output of the log2 function is the same type as the input. [This is a general pattern for many element-wise functions.] There are only a handful of int64 numbers whose base 2 log is representable as an int64 number. If it were defined for int64 we'd likely have a lot of people complaining about "bugs" in log2 when it was returning the correct answer just not the answer they expected.
log2Int64 = @(x) int64(log2(double(x)));
x = int64(10:20);
y = log2Int64(x)
check = x - 2.^y % Is this what you would expect?
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Chebyshev in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!