【问题标题】:Distinguish 'inf' and '-inf'区分“inf”和“-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];

我找不到将它们分开的函数。

谢谢。

【问题讨论】:

    标签: arrays matlab matrix nan infinite


    【解决方案1】:

    您可以使用isinf() 检测inf,您可以使用sign() 检测符号。将两者结合起来:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-13
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 2011-06-11
      • 2017-06-09
      • 2012-09-02
      相关资源
      最近更新 更多