Так что мне нужно преобразовать набор вложенных циклов for из Matlab в Python, и я немного застрял.
Я перепробовал несколько вариантов, и в настоящее время застрял в коде, показанном ниже.
Также a и tau одинаковы для обоих кодов.
Код Matlab:
for j=1:161
te = 1:j;
j
for i=te
i
G(i) = E_C(i)*(a(1)*exp(-(length(te) i+1)./tau(1))+a(2).*exp(-(length(te)-i+1)./tau(2))+a(3).*exp(-(length(te) i+1)./tau(3))+a(4).*exp(-(length(te)-i+1)./tau(4))+a(5).*exp(-(length(te)-i+1)./tau(5)));
end
d(j)= sum(G)
end
dCppmv = d/1000;
Мой код Pyton, который не дает таких же результатов:
CO6=[]
for i in np.arange(161):
a = [0.067, 0.1135, 0.152, 0.097, 0.041]
tau= [inf, 313.8, 79.8, 18.8, 1.7]
temp = np.arange(0,i)
for j in temps:
G = E_cc[j] *( ((a[0] * np.exp(-(len(temp)-j+1)))/tau[0]) +((a[1] * np.exp(-(len(temp)-j+1)))/tau[1]) +((a[2] * np.exp(-(len(temp)-j+1)))/tau[2]) +((a[3] * np.exp(-(len(temp)-j+1)))/tau[3]) +((a[4] * np.exp(-(len(temp)-j+1)))/tau[4]) )
CO6.append(G/1000)
Я проверил формулу G, и они должны быть одинаковыми. Я вполне уверен, что проблема в циклах for и суммировании G в конце.