mtwm.net
当前位置:首页 >> mAtlAB画分段函数图像 >>

mAtlAB画分段函数图像

举例说明: x=0:pi/100:2*pi; y=sin(x).*(0

把下面的函数保存为piecewise_x.m文件 function f=piecewise_x(x)f=x.^2.*(x>=0 & x=1 & x=2 & x运行: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:');%画区间间隔线

这是一个很典型的问题哈 问题出在这里:myfun的输入x你是当做单个数字来处理的,而实际你plot(x,myfun(x))里的x是一个数组,所以在myfun的if判断里,只取了第一个元素x(1)做判断,然后用判断的结果来计算所有的x(i) 你要写成这样,我写个简单点的,你自己照着改 x=-1:0.1:1; y=x.*(x>0) - 2 * x .* (x<0) plot(x,y) 另外,你可以在matlab里输入[1 2 3]>2,来看一下数组和单个数字比大小时,matlab是怎么处理的

x=[0:.01:1];y=x;plot(x,y);hold on;x=[1:.01:2];y=1-x;plot(x,y);

x = 0 : 400; y = 11.2*(x<100) + (.0192*x+9.28).*(x>=100&x<200) + (.0112*x+10.88).*(x>=200&x<300) + (.0336*x+4.16).*(x>=300); plot(x,y)

我教你吧:就是先把第一个分段函数学出来在之后加上hold on然后再把第二段函数写上依次hold on注意hold on 之后不要加;再者就是在plot中要加上各自的分段区间哈,区间不要加''ok

两个都是 x<0 是不是搞错了?首先将分段函数编辑好,保存为tempA.m保存在当前工作目录下 function y = tempA(x)% 分段函数 y = (x > 0) .* (x .^ 2 + (1 + x) .^ (1 / 4) + 5) + (x == 0) .* 0 + (x < 0) .* (x .^2 + (1 - x) .^ (1 / 4) - 5); 然后在命令窗口输入:>> fplot('tempA',[-10,10])>> x = -10 :0.1 :10;>> y = tempA(x);>> plot(x,y,'*')

举个例子y=-exp(10.5*(x+0.5)) x<-0.5y =exp(3.51*(x0.5))-2*exp(-3.51*(x+0.5)) (-0.5,0.5)y=-exp(10.5*(x+0.5)) x>0.5matlabx=-1:0.02:1;y=-exp(10.5*(x+0.5)).*( x<-0.5 )+(exp(3.51*(x+0.5))-2*exp(-3.51*(x+0.5))).*(x>-0.5&x<0.5)-exp(10.5*(x+0.5)).*(x>0.5);plot(x,y)semilogy(x,y)

用逻辑做举个简单的例子:如图:用matlab程序为t=0:1:120;y=t.*(t<60) + (120-t).*(t>=60&t<90) + 30*(t>=90);plot(t,y)

把下面的函数保存为piecewise_x.m文件 function f=piecewise_x(x)f=x.^2.*(x>=0 & x=1 & x=2 & x

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