加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

matlab 分段函数实现及绘图

(2013-07-02 15:14:17)
标签:

matlab

分段函数

绘图

教育

1. 一元分段函数
例如


http://s8/mw690/aff412f1tx6AK7WVXcb57&690分段函数实现及绘图" TITLE="matlab 分段函数实现及绘图" />

把下面的函数保存为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:');%画区间间隔线

http://s6/mw690/aff412f1tx6AK7YvpvT85&690分段函数实现及绘图" TITLE="matlab 分段函数实现及绘图" />



2. 二元分段函数
例如:
http://s10/mw690/aff412f1tx6AK3Gfu3La9&690分段函数实现及绘图" TITLE="matlab 分段函数实现及绘图" />

把下面的函数保存为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)&(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)
http://s14/mw690/aff412f1tx6AK80uewBad&690分段函数实现及绘图" TITLE="matlab 分段函数实现及绘图" />


PS1:ylim, set or query y-axis limits. see details with matlab help.

PS2:如果MATLAB的表达式一行写不下,可以在行尾加三个英文句号来达到换行的目的。






0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有