我希望以更大的幅度运行以下30到40个电流(I0)的值。有人可以告诉我如何实现这一目标吗?
GNa = 400;
GK = 200;
GL = 2;
ENa = 99;
EK = -85;
VL = -65;
C = 2;
dt = .01;
t = 0:dt:200;
I0 = 200;
It= I0 + 0*t;
It(1:40/dt)=0;
m = zeros(1,length(t));
n = zeros(1,length(t));
h = zeros(1,length(t));
V = zeros(1,length(t));
V(1) = -65;
am = zeros(1,length(t));
bm = zeros(1,length(t));
an = zeros(1,length(t));
bn = zeros(1,length(t));
ah = zeros(1,length(t));
bh = zeros(1,length(t));
for i=1:length(t)-1
I=It(i);
am(i) = (0.1*(V(i) + 40))/(1 - exp(-0.1*(V(i)+40)));
bm(i) = 4*exp(-0.0556*(V(i)+65));
ah(i) = 0.07*exp(-0.05*(V(i)+65));
bh(i) = 1./(1+exp(-0.1*(V(i)+35)));
an(i) = (0.01*(V(i)+55))/(1 - exp(-0.1*(V(i)+55)));
bn(i) = 0.125*exp(-0.0125*(V(i)+65));
m(i+1) = m(i) + dt*(am(i)*(1 - m(i)) - bm(i)*m(i));
h(i+1) = h(i) + dt*(ah(i)*(1 - h(i)) - bh(i)*h(i));
n(i+1) = n(i) + dt*(an(i)*(1 - n(i)) - bn(i)*n(i));
V(i+1) = V(i) + dt*(((-GL*(V(i) - VL) - GNa*(m(i).^3)*h(i)*(V(i) - ENa) - GK* (n(i).^4)*(V(i) - EK)+ I))/C);
end
答案 0 :(得分:0)
你总是可以将它包装在另一个for
循环中,不是吗?
I0list = 200:2.5:300 % 41 values including endpoints
for j = 1:length(IOlist)
I0 = IOlist(j);
% Rest of your code, minus setting I0, goes here
end
如果您需要存储所有值,请将m
等设为m = zeros(length(IOlist),length(t));
,然后在分配时使用这两个索引,例如
am(j,i) = ...