想画一个简单的分段函数,一个抛物线从0起然后降落到0,然后紧接着的值都是0。
这个是程序
A=2000;T1=0.06;
t=[0:0.001:0.06];
s3t_1=(-6*A*(t.^2)/T1^3)+(6*A*t/T1^2).*( t>=0&t<0.06);
s3t_2=0*( t>=0.06&t<=0.585);
S=s3t_1+s3t_2;
plot(t,S);
axis([0 0.6 -60000 60000]);
grid on;
A,T1都是常数,s3t_1是抛物线的表达式,s3t_2是0的表达式。以t为自变量画图,希望( t>=0&t<0.06)段是抛物线,( t>=0.06&t<=0.585)这段的值为0,这个时候问题就来了。
当t=[0:0.001:0.585];画出来是这样的
2.JPG (32.21 KB, 下载次数: 8)
2015-9-27 13:16 上传
0的那段并没有显示出来。
当改成t=[0:0.001:0.585][url=];时画出来是这样的[/url]
3.JPG (32.03 KB, 下载次数: 11)
2015-9-27 13:17 上传
不仅没有显示0的部分,抛物线还多出0以下的竖线。。从工作台里看并不是一条垂线,是一条莫名的曲线。。
事实上我发现在我设定t的范围的时候,当t的种植大于0.06的时候就会出现下面这根线。我的分段时间就是让抛物线在0到0.585之间,之后全是0,但是并没有起到限定作用。
然而,
x=-3:0.001:5;y2=(-x.^2+1) .* (x>=0&x<1);
y3=0 .* (x>=2&x<=3);
y= y2+y3;
figure(1)
plot(x,y,'-')
axis([-1 5 -11.5]);
这个程序和我那个一样的,只是数据不同函数不同,却可以正常显示。。
1.JPG (18.08 KB, 下载次数: 3)
2015-9-27 13:22 上传
究竟是什么问题呢?
还有没有其他画分段函数的方法,比如用if,可我不太会用。。