Matlab中如何将if选择语句中上一语句的计算结果代入下一语句的计算式中

大神们,我在Matlab中编程如下,想实现将最后一个elseif下语句的计算结果代入else计算式中,即将m(i)=k1+k2/(1+exp((t(i)+k0)/k3))的计算结果代入m(i)=m(i)+Gz*(t(i)-H1)/100的等号右边m(i)里,但计算结果有问题,else语句下计算时同一点数值出现大的波动(H1=500,H2=2500),正确的应该是图中红色斜直线。图片说明

clc,clear
T0=26;
k1=3.94;
k2=37.1;
k0=130.1;
k3=402.7;
Gz=2.3;
H1=input('water depth:')
H2=input('well depth:')
t=0:5:H2;
m=zeros(size(t));
for i=1:length(t);
if t(i) m(i)=T0;
elseif (t(i)>=50)&(t(i) m(i)=(T0*(200-t(i))+13.7*(t(i)-50))/150;
elseif (t(i)>=200)&(t(i)<1500)
m(i)=k1+k2/(1+exp((t(i)+k0)/k3))
else
m(i)=m(i)+Gz*(t(i)-H1)/100
end
end
plot(t,m,'r')
请问我的程序错误在哪?请各位大神赐教

clc,clear
T0=26;
k1=3.94;
k2=37.1;
k0=130.1;
k3=402.7;
Gz=2.3;
H1=input('water depth:');
H2=input('well depth:');
t=0:5:H2;
m=zeros(size(t));
for i=1:length(t)
if (t(i) m(i)=T0;
elseif (t(i)>=50)&t(i) m(i)=(T0*(200-t(i))+13.7*(t(i)-50))/150;
elseif (t(i)>=200)&(t(i)<1500)
m(i)=k1+k2/(1+exp((t(i)+k0)/k3));
s=m(i)
else
m(i)=s+Gz*(t(i)-H1)/100;
end
end
plot(t,m,'r')
elseif后面直接定义一个变量就OK,然后else就可以用了