Ras*_*hid 2 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);
Run Code Online (Sandbox Code Playgroud)
这是,
c = [ 1 2 3 NaN 3 Inf;
-Inf 1 0 1 0 1];
Run Code Online (Sandbox Code Playgroud)
我想要,
newc = [ 1 2 3 NaN 3 1e6;
-1e6 1 0 1 0 1];
Run Code Online (Sandbox Code Playgroud)
我找不到一个分隔它们的函数.
谢谢.
MrA*_*man 10
你可以检测inf使用isinf(),你可以使用检测标志sign().结合这两个:
newc = c;
inf_filter = isinf(newc);
newc(inf_filter) = 1e6 * sign(newc(inf_filter));
Run Code Online (Sandbox Code Playgroud)