我坚持计算数组中每个点的积分。这个想法首先是创建一个函数(“Integrand”)。然后,创建计算必要积分的第二个函数(“MyConvolve”)。R,积分在阵列的每个点
这里就是我所做的到现在:
Integrand = function(s,x)
{ 1/4*(abs(x-s)<=1)*(abs(s)<=1) }
MyConvolve = function(func,data)
{ return(integrate(func, lower=-Inf, upper=Inf, data)) }
现在,运行一些数组的代码,我得到一个错误信息:
SomeMatrix = replicate(10, rnorm(10))
MyConvolve(Integrand, SomeMatrix)
与以下错误消息结束了:
Error in integrate(func, lower = -Inf, upper = Inf, data) :
evaluation of function gave a result of wrong length
我已经尝试了向量化函数,但仍然以错误消息结束。
非常感谢您的帮助!
你所说的“计算积分在阵列的每一个点”的意思是 (你的阵列是2维的,但'integrate'计算的单变量函数的积分)?例如,你如何计算它在一个点? – 2013-04-10 10:34:00
嗨文森特!假设我有一个10x10矩阵。现在我想让我的代码计算每个单个矩阵条目的积分(在我的例子中是卷积乘积)。因此,输入一个10×10的矩阵,并得出一个10×10矩阵的卷积乘积。目前,如果我输入一个评估点,代码就没有问题。但是多个评估点不起作用。谢谢! – RomainD 2013-04-10 11:24:09