在numpy数组上循环并使用上一个

2024-04-16 05:42:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手,在这个问题上我被困了一整天。我知道这肯定是一种非python的编码方式,但我没有找到一种矢量方式来做我想做的事情。。。问题是“phi[t]”必须在循环期间使用phi[t-1]值进行修改。我试图使用临时变量或在循环中创建phi的副本,但没有成功。 如果有人能给我一个提示就太好了。谢谢! 代码如下:

import math
import numpy
x = numpy.linspace(20, 1200, 20)
R=8.3144621
beta=0.166666
def func(T, n , A, E):
    phi = numpy.zeros(T.shape)
    dphi = numpy.zeros(T.shape)
    for t in range(len(T)):
        dphi[t]=A/beta*(1-phi[t])**n*math.exp(-E/(R*T[t]))
        if t>0:
            phi[t]= phi[t-1]+(T[t]-T[t-1])*dphi[t]
        if phi[t]>1: phi[t]=1
    return dphi
y = func(x, 0.5, 12000, 100000)

Tags: importnumpyif矢量方式zerosmath事情