wlbk.net
当前位置:首页 >> 用mAtlAB实现分段函数 >>

用mAtlAB实现分段函数

t=-1:0.01:3; % 自己根据需要设置 m=zeros(size(t)); for i=1:length(t) if (t(i)>=0)&(t(i)<1) m(i)=t(i); elseif (t(i)>1)&(t(i)<=2) m(i)=-t(i)+2; else m(i)=0.1; end end plot(t,m,'r') grid on

function yout=myfun1(x,D)% myfun1 help h=5% |- h ,x>D% y=f(x)=| h/(D.*x) ,|x|<=D% |- -h ,x<-D if x>D yout=5; elseif abs(x)<=D yout=5./(x.*D); elseif x<D yout=-5; end 上边是函数,h我定义成5了,你可以根据你实际来修改,或者像x和D一样作为参数传进来 d=2;>> for k=1:100 x(k)=-50+k; y(k)=myfun1(x(k),d); end plot(x,y) 这是在matlab中调用方法

function y=hanshu(n)syms q d u m;if mod(n,2)==0y=(5*q*d-10*u*d)*n+m*d*(q-u)/3;elsey=5*(n+1)*q*d-10*n*q*d-m*d*u/3;end

首先,建立自定义分段函数,即piecewise.m function y=piecewise(x)%piecewise function 分段函数 n=length(x); Pomax=9; for i=1:n if x(i)>=0 & x(i)<=150 y(i)=0.79*Pomax*x(i)^0.048; elseif x(i)>150 & x(i)<=270 y(i)=Pomax*exp(-0.021*(x(i)-150)); else disp('x必须在0~270之间') end end 然后,在当前目录下,执行>> piecewise(4) ans =7.5992

x=-2:0.1:2;y=sin(x).*(x=0)+0.8*(x>0.8);plot(x,y,'*')

这是一个很典型的问题哈问题出在这里:myfun的输入x你是当做单个数字来处理的,而实际你plot(x,myfun(x))里的x是一个数组,所以在myfun的if判断里,只取了第一个元素x(1)做判断,然后用判断的结果来计算所有的x(i)你要写

1、绘制分段函数图像,需要知道分段函数的表达式.来绘制分段函数图像,该函数分为三段.2、x的取值范围选取0到3,y的表达式书写如下图所示,表示为每段的函数表达式乘以x区间的逻辑表达式,如果x的值在范围内,就乘以1,不在范围内,就乘以0.3、点击回车键,运行程序,运行结果如下图所示,可以看到绘制的分段函数图像,一次性就绘制成功了.4、分段函数为三段,每个x区间内有对应的y值表达式.5、书写y的值如方框处所示,表达出了y的函数值.6、点击回车键,开始运行程序,运行结果如下图所示,分段函数绘制成功了.

举例说明:x=0:pi/100:2*pi; y=sin(x).*(0<=x & x<pi)+cos(x).*(pi<=x & x<=2*pi); 或者可以用if函数分段写

一、MATLAB的命令窗口和编程窗口 二、MATLAB的数据结构与基本运算 三、MATLAB的矩阵表示与运算 四、MATLAB的绘图 五、MATLAB的程序设计

最低0.27元开通文库会员,查看完整内容> 原发布者: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*

网站首页 | 网站地图
All rights reserved Powered by www.wlbk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com