3

谁能建议为什么以下示例代码不起作用:

require(biwavelet)
t <- seq(1/24, 365, 1/24)
A <- 2
fs <- 1/24
y <- A + sin(2*pi*fs*t)
d = cbind(t,y)
wt.t1 <- wt(d)
plot(wt.t1)

它会生成一个错误说明:

Error in image.default(x$t, yvals, t(zvals), zlim = zlims, ylim = rev(range(yvals)),  : 
  invalid z limits

我将如何解决这个问题?

额外的:

作为对 Gavin Simpsons 的回答:如果我将数据保留为仅包含一个频率但更改时间向量,则代码可以正常工作。

require(biwavelet)
A <- 2
fs <- 1/24
y <- A + sin(2*pi*fs*t)
d <- cbind(seq(1,8760), y) 
wt.t1 <- wt(d)
plot(wt.t1)
4

2 回答 2

5

您在 wt.R 函数中发现了一个错误(错误的括号)。该错误已在 biwavelet 包的 0.12 版本中得到修复,因此您上面的代码的两个版本现在都应该可以工作了。

感谢您发现错误。请不要犹豫,通过电子邮件向软件包的维护者(即我)发送有关未来错误的信息。

于 2012-10-07T07:15:10.057 回答
3

我怀疑这是因为您在这里只有一个频率并且没有为此设置功能。我可以通过添加白噪声得到一个情节y

require(biwavelet)
t <- seq(1/24, 365, 1/24)
A <- 2
fs <- 1/24
y <- A + sin(2*pi*fs*t)
d <- cbind(t, y + rnorm(length(y))) ## add some white noise to y
wt.t1 <- wt(d)
plot(wt.t1)

您可能希望联系维护人员报告问题。当我调试它并反转它时,我得到了做某事的情节,zlim所以这diff(zlim)是积极的,所以可能是该plot()方法的作者做出了一个并非在所有情况下都成立的假设。

于 2012-08-14T13:24:27.840 回答