使python中的矩阵卷积更快

时间:2016-12-10 13:09:40

标签: python numpy convolution

我正在进行矩阵卷积。这是我的“手工制作”代码。但它非常慢。我想让它的工作速度与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()

0 个答案:

没有答案