3

抱歉,这可能是基本的,但我是新手。我会做很多曲线,所以一些建议对我有用。

我有一个要绘制的函数:

f <- function(x) sum(4*sin(x*seq(1,21,2))/(pi*seq(1,21,2)))

使用

curve(f, -pi, pi, n=100)

不幸的是,这对我不起作用。请指教。谢谢

4

1 回答 1

5

您的功能未矢量化。目前它只需要一个标量输入并输出一个返回值。 curve期望它应该能够输入它想要绘制的 x 值的向量,并且应该接收响应值的向量。最简单的解决方案是仅用于Vectorize自动将您的函数转换为可以接受向量输入的函数。

f2 <- Vectorize(f)
curve(f2, -pi, pi, n = 100)

但是,您可能只想直接编写函数的矢量化版本。

于 2013-07-30T15:37:06.357 回答