刚开始学时,也曾遇到分段画图的问题,开始和楼主的想法差不多,图是可以画出来,不过个人感觉比较麻烦,不是很满意。后来在网上找了一下,果然有高人,一下是个人找到的认为比较好的解决分段画图的方法,和大家分享一下。希望对大家有所启示,个人觉得里面的编程思想很值得学习。具体是那位高人给出的解答已经不记得了,希望高人不会生气。
问题是:
if x<-1&x>=-3
y=(-x.^2-4*x-3)/2;
elseif x>=-1&x<1
y=-x.^2+1;
else x<=3&x>=1
y=(-x.^2+4*x-3)/2;
分段函数画图,怎么做呢
【1】
clc;clear
x1=-3:0.01:-1;
x2=-1:0.01:1;
x3=1:0.01:3;
y1=(-x1.^2-4*x1-3)/2;
y2=-x2.^2+1;
y3=(-x3.^2+4*x3-3)/2;
x=[x1,x2,x3];
y=[y1,y2,y3];
plot(x,y)
【2】这个还算够用,罗嗦些。
clc;clear
x=-3:0.01:3;
y1=zeros(size(x));
y2=zeros(size(x));
y3=zeros(size(x));
N=length(x);
for k=1:N
if x(k)<-1&x(k)>=-3;
y1(k)=(-x(k).^2-4*x(k)-3)/2;
elseif x(k)>=-1&x(k)<1 ;
y2(k)=-x(k).^2+1;
else x(k)<=3&x(k)>=1 ;
y3(k)=(-x(k).^2+4*x(k)-3)/2;
end
end
y=y1+y2+y3;
plot(x,y) |