我堅持計算數組中每個點的積分。這個想法首先是創建一個函數(「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