s <- seq(-10, 6, by = 0.1)
my.fun = function(s)
{
n = length(s)
s = 0
for(i in 1:n)
{
s = ((s[i]*s[i]*s[i]*s[i])*sin(1/s[i]) +(s[i]*s[i]))/(1+abs((s[i]*s[i]*s[i])))
}
s
}
这是我的功能。我试图计算一系列数字,然后在等式中使用该序列。但是,它没有保存新的变量S,并且函数也不会打印任何东西。
答案 0 :(得分:0)
您无法在函数本身的定义中返回输出。
执行my.fun(s)
以返回s的输出。
在初始化s的值时也要确保没有0。由于你一次只做1 / s,你只会返回NaNs。
答案 1 :(得分:0)
有两个原因:
1/s[i]
设置为零
s
,因此s <- seq(-10, 6, by = 0.1)
s = s[which(s != 0)] # to drop the zero from the vector
my.fun = function(s)
{
n = length(s)
for(i in 1:n) {
s[i] = ((s[i]*s[i]*s[i]*s[i])*sin(1/s[i]) + s[i]*s[i]))/(1+abs((s[i]*s[i]*s[i])))
}
s
}
my.fun(s)
不应包含任何零。尝试
import module