区分'inf'和'-inf'

时间:2014-11-17 20:42:31

标签: arrays matlab matrix nan infinite

如何将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 个答案:

答案 0 :(得分:10)

您可以使用inf检测isinf(),并且可以使用sign()检测签名。结合这两个:

newc = c;
inf_filter = isinf(newc);
newc(inf_filter) = 1e6 * sign(newc(inf_filter));