log2(0)=-inf problem

Hallo,
my problem is that i want to set the quantity log2(0), so as log2(0)==0 {normally it is log2(0)==-inf}. is there a simple way to do this?
Thanks you in advance.

回答 (1 件)

Sean de Wolski
Sean de Wolski 2011 年 10 月 5 日

1 投票

Write your own log2 and call it:
function out = mylog2(in)
out = log2(in);
out(~in) = 0;
end
Add the F/E output options if desired.
It would be very dangerous to overload this function since it's probably used elsewhere.

4 件のコメント

Matt Tearle
Matt Tearle 2011 年 10 月 5 日
Or, post process: y = log2(x); y(isinf(y)) = 0;
Am I suggesting some logical indexing? Why, yes, I think I am!
Sean de Wolski
Sean de Wolski 2011 年 10 月 5 日
x = [0 inf -inf 3];
Matt Tearle
Matt Tearle 2011 年 10 月 5 日
y(isinf(y)&~isinf(x)) = 0
Sean de Wolski
Sean de Wolski 2011 年 10 月 5 日
I'm holding to ~x, logical and foolproof, no, doh! can't convert nan to logical arghh...
x==0

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCreating Custom Components and Libraries についてさらに検索

タグ

質問済み:

2011 年 10 月 5 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by