请帮我把matlab翻译成python

你好我正在尝试将一个用matlab编写的简单程序翻译成python。我使用数组在单个图形中绘制多个数据。我根据matlab语言编写了python。但我一路上似乎犯了一些错误。请帮帮我提前谢谢你这是实际工作的matlab代码

选择 | 换行 | 行号
  1. subplot(5,4,1) 
  2. a=0.02; b=0.2;  c=-65;  d=6;
  3. V=-70;  u=b*V;
  4. VV=[];  uu=[];
  5. tau = 0.25; tspan = 0:tau:100;
  6. T1=tspan(end)/10;
  7. for t=tspan
  8.     if (t>T1) 
  9.         I=14;
  10.     else
  11.         I=0;
  12.     end;
  13.     V = V + tau*(0.04*V^2+5*V+140-u+I);
  14.     u = u + tau*a*(b*V-u);
  15.     if V > 30
  16.         VV(end+1)=30;
  17.         V = c;
  18.         u = u + d;
  19.     else
  20.         VV(end+1)=V;
  21.     end;
  22.     uu(end+1)=u;
  23. end;
  24. plot(tspan,VV,[0 T1 T1 max(tspan)],-90+[0 0 10 10]);
  25. axis([0 max(tspan) -90 30])
  26. axis off;
  27. title('(A) tonic spiking');
  28.  

这是我的python代码。

选择 | 换行 | 行号
  1. import sys
  2. from math import *
  3. from scipy.integrate import odeint # ODE integration
  4. from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
  5. from matplotlib.figure import Figure
  6. import numpy
  7. import pylab
  8.  
  9. a = 0.02
  10. b = 0.2
  11. c = -65
  12. d = 6
  13. V = -70
  14. u = b * V
  15. VV = []
  16. uu = []
  17. tau = 0.25
  18. tspan = numpy.arange(0,101,tau)
  19. T1 = tspan(-1)/10
  20.  
  21. for t in tspan:
  22.     if t>T1:
  23.         I = 14
  24.     else: 
  25.         I = 0
  26.     V = V + tau*(0.04*V^2+5*V+140-u+I)
  27.     u = u + tau*a*(b*V-u)
  28.     if V>30:
  29.         VV[end+1]=30
  30.         V = c
  31.         u = u + d
  32.     else:
  33.         VV[end+1] = V
  34.     uu[end+1] = u
  35. pylab.plot(tspan,VV)
  36. pylab.show()
  37.  
  38.  

标签: python

添加新评论