我的问题涉及到一些本应相当简单的问题,但我无法使其工作。我的意思是,您可以计算x
和y
,然后使用plot
函数绘制它们。但是,使用curve
函数可以做到这一点吗?
我想绘制以下R
函数f2
:
n <- 1
m <- 2
f2 <- function(x) min(x^n, x^(-m))
但是这段代码失败了:
curve(f2, 0, 10)
有什么建议吗?
发布于 2018-06-26 12:32:30
如前所述,对curve
的调用失败的主要原因是因为curve
需要一个矢量化函数(在本例中,输入一个结果向量并得到一个结果向量),而f2()函数只输入和输出一个标量。您可以使用Vectorize
动态矢量化您的f2
n <- 1
m <- 2
f2 <- function(x) min(x^n, x^(-m))
curve(Vectorize(f2)(x), 0, 10)
发布于 2018-06-26 08:32:55
是否需要curve
函数,或者该函数是否可以工作?
n <- 1 # assumption
m <- 2 # assumption
f2 <- function(x) min(x^n, x^(-m))
x.range <- seq(0, 10, by=.1)
y.results <- sapply(x.range, f2) # Apply a Function over a List or Vector
# plot(x.range, y.results) old answer
plot(x.range, y.results, type="l") # improvement per @alistaire
https://stackoverflow.com/questions/51033306
复制相似问题