我正在进行矩阵卷积。这是我的“手工制作”代码。但它非常慢。我想让它的工作速度与C中相同的代码一样快。有一个函数“numpy.convolve()”可以让它更快,因为我知道但我不知道如何将它应用到我的代码中。有什么想法吗?
import numpy as np
import matplotlib.pyplot as plt
import random
import matplotlib.mlab as mlab
def convolution(x):
mysum = 0
for i in xrange(0,20):
mysum += mlab.normpdf(int(x) - 10+i,x,5)*frame[i+int(x)-10+100]
return mysum
def main():
global frame
while(1):
res = []
light = []
frame = []
for i in range(0,200,1):
temp = (mlab.normpdf(i-100,10,5)+0.05*random.random())
frame.append(temp)
imax = 0
rmax = 0
for i in range(0,1800,1):
r = convolution((i-900)/10)
if rmax<r:
rmax = r
imax = i/10
print(imax / 10.0)
main()