如何将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];
我找不到将它们分开的功能。
谢谢。
最佳答案
您可以使用inf
来检测isinf()
,并且可以使用sign()
来检测符号。结合两个:
newc = c;
inf_filter = isinf(newc);
newc(inf_filter) = 1e6 * sign(newc(inf_filter));