2017-02-20 53 views
0

我想使用复杂参数的位修改补充函数。我自己定义了它,因为MATLAB不能直接处理复杂的参数。matlab中复杂参数的互补函数

[email protected](p) exp(-p.^2).*double(erfc(sym(-i*p))); 

它有效,但不适用于所有参数。在我环路我开始这样的模糊值

的NaN +纳尼

例如,对于参数-27.4525 +0.0070*i

这是什么意思,以及如何处理它?

+1

“MATLAB不能直接与复杂的参数工作”。是的,是的,它可以 –

+0

告诉我如何。我得到的错误,该参数必须是真实的 – David

回答

0

我不知道ERFC复杂参数的意义,然而,问题是,ERFC趋于无穷:

>> syms p real 
>> limit(erfc(p*i),p,Inf) 

ans = 

1 - Inf*i 

您与exp(-p.^2)是0,因此Inf*0=NaN乘以ERFC。

它的工作原理,如果你把整个事情的象征,只有在产品转换为一个数值,就像这样:

>> [email protected](p) double(exp(-sym(p).^2).*erfc(sym(-i*p))); 
>> w(-27.4525 +0.0070*i) 

ans = 

0.0000 - 0.0206*i 
+0

谢谢。你帮了我很多。 – David

+0

不客气,很高兴知道它的作品。 – Florian

+1

@大卫认为接受答案是有效的 –