Matlab中for循环下plot曲线绘制不显示曲线

在Matlab中for循环下plot曲线绘制不显示曲线
clc,clear
T0=26;
k1=3.94;
k2=37.1;
k0=130.1;
k3=402.7;
prompt = 'What is the original value? ';
H=input(prompt)
for h0=0:H
if h0 < 50
Ts=T0
elseif (h0>=50)&&(h0<200)
Ts=(T0*(200-h0)+13.7*(h0-50))/150
else
Ts=k1+k2/(1+exp((h0+k0)/k3))
end
end
plot(h0,Ts,'r')
请问这是哪里出错了

问题出在这里:“for h0=0:H”。
这相当于C语言的“for(h0=0; h0<=H; h0++)”。和“h0=0:H”是不同的。
所以程序运行的时候h0只是一个数,或者说是一个1×1的矩阵,那最后plot的时候横坐标也就是“h0”只有一个数,那就只能plot一个点,就看不到了。
可以把plot换成stem,这样就理解更清楚了。也可以在工作区里双击变量,就能看到变量的矩阵形式了。

clc,clear

T0=26;

k1=3.94;

k2=37.1;

k0=130.1;

k3=402.7;

prompt = 'What is the original value? ';

H=input(prompt);

n=1:H;

Ts=zeros(1,H);

for h0=1:H

if h0 < 50

Ts(1,h0)=T0;

elseif (h0>=50)&&(h0<200)

Ts(1,h0)=(T0*(200-h0)+13.7*(h0-50))/150;

else

Ts(1,h0)=k1+k2/(1+exp((h0+k0)/k3));

end

end

plot(n,Ts,'r')