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

用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

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

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)你要写

首先,建立自定义分段函数,即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

出错的原因应该是 你的函数名字起的太简单了,可能与别的g.m函数冲突,引起调用错误,不过也可能是matlab抽风了,你重启试试.我的解决办法是:把函数名字改为gg.m 然后放到当前工作目录中,函数内容的代码是:function y=gg(x) if x>2 y=x^2+2; elseif 0<x<=2 y=3*x; elseif x<=0 y=x^3; end 然后在命令行中输入 gg(6) gg(2) 你看,运行正常!结果如下:你试试,如果有问题,欢迎继续讨论

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

y2的第2个条件写错了,应该是3<=x<=6吧? 参考代码:y1 = @(x)(x.^2+3*x).*(x<=4)+(4*x+1).*(x>4&x<=9); y2 = @(x)(3*x.^2-9).*(x>-2&x<3)+(7*x+4).*(x>=3&x<=6); y = @(x)y1(x)+y2(x); x = -4:0.1:11; plot(x,y1(x),x,y2(x),x,y(x),'--') legend('y_1','y_2','y')前三行代码分别定义了三个匿名函数y1、y2和y,可以随便调用求任何x的函数值:>> y(3.5) ans = 51.2500>> y(5.6) ans = 66.6000

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

不管是不是分段函数,都在两个函数上取采样点,然后采样点卷积即可.采样点形成的序列无所谓分段还是连续

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