如何将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];
我找不到分隔它们的功能。
感谢。
答案 0 :(得分:10)
您可以使用inf
检测isinf()
,并且可以使用sign()
检测签名。结合这两个:
newc = c;
inf_filter = isinf(newc);
newc(inf_filter) = 1e6 * sign(newc(inf_filter));