用matlab怎样画分段函数图

x<s1 f(x)=1; s1<x<s2 f(x)=1 - (s2-x)/(s2-s1) ; x>s2 f(x) = 0
还有两个f(xi)函数与上述函数一样怎样让他们在一个图像中输出??急求!!!!!
s1 s2是常数。。。但现在不知道。。。

1、首先双击打开MATLAB软件,如图所示。

2、然后建立一个脚本文件,具体方法如图所示。

3、然后定义变量。

4、然后建立循环,求解分段函数

5、然后采用以下指令画图。

6、然后就可以看到画出的图片如图所示。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-20

  1.一元分段函数绘图

  例如:

  把下面的函数保存为Piecewise_x.m文件

  function F=Piecewise_x(x)
F=x.^2.*(x>=0 & x<1)+cos(pi*(x-1)).*(x>=1 & x<2)+(-x.^2./(x+2)).*(x>=2 & x<=4);
end

  运行:

  x=linspace(0,4);
F=Piecewise_x(x);%计算相应函数值
plot(x,F);%绘制曲线
hold on;
plot(1*ones(1,2),ylim,'r:');%画区间间隔线
plot(2*ones(1,2),ylim,'r:');%画区间间隔线

  2.二元分段函数绘图

  例如:

  把下面的函数保存为Piecewise_xy.m文件

  function Pxy=Piecewise_xy(x,y)
Pxy=0.5457*exp(-0.75*y^2 - 3.75*x^2 - 1.5*x).*(x+y>1)+...
    0.7575*exp(-y^2 - 6*x^2).*(x+y>-1)+...
    0.5457*exp(-0.75*y^2 - 3.75*x^2 + 1.5*x).*(x+y<=-1);
end

  运行:

  [x,y]=meshgrid(-3:0.1:3);
s=size(x)
Pxy=zeros(s(1),s(2));
for i=1:s(1)
    for j=1:s(2)
        Pxy(i,j)=Piecewise_xy(x(i,j),y(i,j));
    end
end
mesh(x,y,Pxy)

第2个回答  2020-03-17
原发布者:295931600
一元分段函数图2.二元分段函数绘图例如:把下面的函数保存为Piecewise_xy.m文件functionPxy=Piecewise_xy(x,y)Pxy=0.5457*exp(-0.75*y^2-3.75*x^2-1.5*x).*(x+y>1)+... 0.7575*exp(-y^2-6*x^2).*(x+y>-1)+... 0.5457*exp(-0.75*y^2-3.75*x^2+1.5*x).*(x+y<=-1);end运行:[x,y]=meshgrid(-3:0.1:3);s=size(x)Pxy=zeros(s(1),s(2));fori=1:s(1) forj=1:s(2) Pxy(i,j)=Piecewise_xy(x(i,j),y(i,j)); endendmesh(x,y,Pxy)
二元分段函数图
第3个回答  2012-05-17
用hold on画
一次画一截,然后hold on,再画另外一截。追问

能不能给出具体编程语句。。。函数是我上面说的

追答

方法一:
%例如s1=-1,s2=1
%xs2 f(x) = 0
x3=1:4/20:5;
y3=0+0*x3;
plot(x1,y1,x2,y2,x3,y3);
axis([-5,5,-1,2]);
结果如图
方法二:
%例如s1=-1,s2=1
%xs2 f(x) = 0
x3=1:4/20:5;
y3=0+0*x3;
plot(x3,y3);
axis([-5,5,-1,2]);
结果如图

注意我把你的函数第二段改了下

本回答被提问者采纳
第4个回答  2012-05-17
类似于这样的样子
plot();第一段
hold on;
plot();第二段
hold on;
plot();第三段
相似回答