区分“inf”和“-inf”
Posted
技术标签:
【中文标题】区分“inf”和“-inf”【英文标题】:Distinguish 'inf' and '-inf' 【发布时间】:2015-01-14 21:22:33 【问题描述】:如何将inf
和-inf
分开?
我有一个包含inf
和-inf
的矩阵,我想分别用1e6
和-1e6
替换它们。
例如,
a = [1 2 3 0 3 4]./[1 1 1 0 1 0];
b = log2([0 2 1 2 1 2]);
c = cat(1,a,b);
也就是说,
c = [ 1 2 3 NaN 3 Inf;
-Inf 1 0 1 0 1];
我想要,
newc = [ 1 2 3 NaN 3 1e6;
-1e6 1 0 1 0 1];
我找不到将它们分开的函数。
谢谢。
【问题讨论】:
【参考方案1】:您可以使用isinf()
检测inf
,您可以使用sign()
检测符号。将两者结合起来:
newc = c;
inf_filter = isinf(newc);
newc(inf_filter) = 1e6 * sign(newc(inf_filter));
【讨论】:
以上是关于区分“inf”和“-inf”的主要内容,如果未能解决你的问题,请参考以下文章