如何将 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];
我找不到将它们分开的函数。
谢谢。
最佳答案
您可以使用isinf()
检测inf
,您可以使用sign()
检测符号。结合两者:
newc = c;
inf_filter = isinf(newc);
newc(inf_filter) = 1e6 * sign(newc(inf_filter));
关于arrays - 区分 'inf'和 '-inf',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981597/