这个post使用逻辑索引来解除如何摆脱Infs。问题是我没有阵列; Infs由匿名函数生成。我试图使用嵌入条件摆脱它们,但它无法正常替换NaN的Inf。以下是我的例子:
fun = @(x) 1./x.*(x~=0)+10.*(x==0)
当x = 0时应该得到10,但在这种情况下输出是NaN,因为Inf.*0=NaN
。我将不胜感激任何建议。
答案 0 :(得分:4)
一个简单的解决方法是将条件移到分母中:
fun = @(x) 1./( x.*(x~=0) + (x==0)/10 );
答案 1 :(得分:3)
我刚刚找到了另一种使用复数的解决方案
a = 1e-10*1j; % very small imaginary number
fun = @(x) real(1./(x+a).*(real(x+a)~=0)+10.*(real(x+a)==0));