R中的复数与Matlab



我在使用R和Matlab时观察到以下现象。

当我将日志应用于R中的负数时,我会收到以下错误消息:

警告消息:在日志(-1(中:NaNs产生

然而,当我在Matlab中将log应用于负数时,我会得到例如以下复数:

log(-1(:0.0000+3.1416i

日志(-5(:1.6094+3.1416i

有什么方法可以在R中实现相同的行为吗?或者有什么东西支持R中的默认选项吗?

log在最初赋予它复杂性的同时,也赋予它复杂性。

log(-1+0i)
# [1] 0+3.141593i
log(-5+0i)
# [1] 1.609438+3.141593i

我不知道为什么默认情况下它没有提供这样做的选项,但话说回来,我并不总是处理复数。

如果您想以编程方式进行此操作,可以使用as.complex:

log(as.complex(-1))
# [1] 0+3.141593i

或者甚至让一个助手函数为你简化它:

mylog <- function(x, ...) log(as.complex(x), ...)
mylog(-1)
# [1] 0+3.141593i

相关内容

  • 没有找到相关文章

最新更新