有没有大佬解答一下定步长冒号赋值存在的问题
问题如下:
二阶线性系统归一化冲激响应
clf,clc,clear;
t=0:0.1:18;
zt=0.2:0.2:1.4;%阻尼系数
m=length(zt);
n=length(t);
y=zeros(1,n);%初始化
hold on
for k=1:m
bt=sqrt(abs(1-zt(k).^2));
if zt(k)<1 %<a>
y=1./bt.*exp(-zt(k).*t).*sin(bt.*t);
plot(t,y,'b','linewidth',1);%细蓝线
elseif zt(k)==1 %<b>
y=t.*exp(-t);
plot(t,y,'k','linewidth',3);%粗黑线
text(10,0.7,'\Delta\zeta=0.2')
else %<c>
y=1./(2.*bt).*(exp(-(zt(k)-bt).*t)-exp(-(zt(k)+bt).*t));
plot(t,y,'r','linewidth',1)%细红线
end
end
text(2.5,0.65,'\zeta=0.2')
text(0.6,0.2,'\zeta=1.4')
grid on
预期输出结果:4条细蓝色,1条粗黑线,2条细红线
运行结果:5条细蓝线,2条细红线,无粗黑线
将程序中的
zt=0.2:0.2:1.4;
修改为
zt=linspace(0.2,1.4,7);
运行结果:4条细蓝色,1条粗黑线,2条细红线 与预期结果一致