convolveslowly.mata
来自「是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到」· MATA 代码 · 共 51 行
MATA
51 行
*! version 1.0.1 20jan2005
version 9.0
mata:
/*
convoleslowly(r,s)
convolution the old-fashioned way.
used for testing.
{cmd:convolveslowly(}{it:r}{cmd:,} {it:s}{cmd:)} returns the same result
as {cmd:convolve(}{it:r}{cmd:,} {it:s}{cmd:)}, but obtains the result by
direct calculation and is slow. Use of {cmd:convolveslowly()} is NOT
recommended. It is included for testing purposes.
*/
numeric vector convolveslowly(numeric vector r, numeric vector users)
{
real scalar i, ii, j
real scalar n, m, ctr, ex
real scalar el
real vector res
numeric vector s
s = ftretime(r,users)
el = (iscomplex(r) | iscomplex(s) ? 0i : 0)
res = J(rows(s),cols(s),el)
n = length(s)
m = length(r)
ctr = (m-1)/2 + 1
ex = ctr - 1
for (i=1;i<=n;i++) {
res[i] = res[i] + s[i]*r[ctr]
ii = i - ex
for (j=1;j<ctr;j++) {
if (ii>0) res[ii] = res[ii] + r[j]*s[i]
ii++
}
ii = i + 1
for (j=ctr+1;j<=m;j++) {
if (ii<=n) res[ii] = res[ii] + r[j]*s[i]
ii++
}
}
return(res)
}
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?