log2() only works with double types?
6 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Simon Chan
2021 年 10 月 24 日
Check MATLAB documentation and this fucntion log2 supports type single or double as the input argument type.
3 件のコメント
Steven Lord
2021 年 10 月 24 日
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?
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Chebyshev についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!