MATLAB 如何实现分段函数

m=t (0=<t<1)
m=-t+2 (1<t<=2)
m=0.1 (其他)
想画出m(t)的时域波形

1、首先我们确定下所画的函数

sin(2*x)     0<=x<=pi

2*x            pi<x<=5

0              其余的x

2、然后我们介绍下匿名函数f=@(x)  sin(2*x)     此时我们就定义了一个sin(2*x)函数。

3、接着我们限制sin(2x)的定义域,(x>=0 & x<=pi)          这里&表示并且的意思。

4、我们按同样的方法定义第二个函数   2*x.*(x>pi& x<=5)

5、最后我们将两个函数组合在一起,这样我们就基本完成任务了。 f=@(x)  sin(2*x) .*(x>=0 & x<=pi)  +2*x.*(x>pi& x<=5)

6、然后我们定义所画的范围z=-1:10^-2:7;y=f@(z); plot(z,y,'or')

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-01-08
有很多种形式可以实现分段函数,其中最简单而运算起来又最快的是:
下面以你的题目为例
function m=fenduanhanshu(t)
m=t*(t>=0 & t<1)+(-t+2)*(t>1 & t<=2)+0.1*(t<0 | t>2)

【解释】
在Matlab中,上述函数中的表达式m=t*(t>=0 & t<1)+(-t+2)*(t>1 & t<=2)+0.1*(t<0 | t>2)的运算规则是当布尔表达式为true时,布尔表达式的值取1,参与运算,否则取0,参与运算。
例如,当表达式中的(t>=0 & t<1)成立时,t*(t>=0 & t<1)=t*1;此时表达式中的布尔表达式(t>1 & t<=2)和(t<0 | t>2)都不成立,取0参与运算,故此时m=t*1+(-t+2)*0+0.1*0=t。
Matlab中的这种设计极大地方便了用户进行科学计算,减少了用户书写的代码量,开发效率大大提高,个人非常喜欢,所以也极力推荐各位使用。

当然还可以用if……elseif……else……end语句,在此不再多说了。

【绘制函数】
x=0:0.001:2;
y=fenduanhanshu(x);
plot(x,y)

还有就是用Matlab自带的函数工具箱,具体大家自己找下。
第2个回答  2020-02-29
matlab对分段函数有非常简单的表示,对此例而言,语句如下:
x = -5:.1:5;
y = (3*x.^2+1).*(x>=1) + (2-x.^3).*(x<=-1);
对于楼主的程序,错误之处在于:
elseif -1
第3个回答  2019-03-14
x是一个向量, x>1只有在x的所有元素都大于1时才为真,所以你的写法得不到正确结果
>> x=-4:0.1:4;
>> y = 2*x.*(x>1) + x.*(x<-1) + 10*x.*(-1<=x&x<=1);
>> plot(x,y)
第4个回答  推荐于2017-10-03
实现代码如下:
function y=myfun1(x)
y=x.*(x>=0 & x<1)+2*x.*(x>=1 &
x<=2);
end

>> x=0:0.001:2;
>>
y=myfun1(x);
>> plot(x,y)

matlab分段函数怎么编写
1、首先在电脑桌面上打开MATLAB软件。2、然后点击matlab软件左上方的新建按钮,建立一个脚本文件。3、定义变量:a1=1.5;a2=2.5;X=0:0.001:5 4、建立循环,求解分段函数。5、采用piot(x,y)指令画图。6、展示最终的分段函数效果。

请教各位怎样用matlab定义一个分段函数
在MATLAB中定义一个分段函数的关键是明确其表达式并划分各个区间。首先,确定函数的x取值范围,例如0到3,这是分段函数的基础。接下来,对于y值的计算,我们需要为每个区间定义特定的函数表达式。这些表达式会乘以x在该区间内的逻辑值(1表示在范围内,0表示不在),确保按照区间划分进行计算。具体步骤如下...

matlab分段函数怎么编写
1、第一步,在计算机桌面上打开MATLAB软件,如下图所示。2、其次,完成上述步骤后,单击matlab软件左上方的“新建”按钮以创建脚本文件,如下图所示。3、接着,完成上述步骤后,定义变量,如下图红框标注所示。4、然后,完成上述步骤后,建立一个循环来求解分段函数,如下图所示。5、随后,完成上述步骤...

MATLAB 如何实现分段函数
1、首先我们确定下所画的函数 sin(2*x) 0<=x<=pi 2*x pi<x<=5 0 其余的x 2、然后我们介绍下匿名函数f=@(x) sin(2*x) 此时我们就定义了一个sin(2*x)函数。3、接着我们限制sin(2x)的定义域,(x>=0 & x<=pi) 这里&表示并且的意思。4、我们按同样的方法定义...

MATLAB求分段函数,怎么写代码呀
怎样用matlab来定义分段函数,首先要根据分段函数建立自定义函数,然后在命令窗口调用或其他程序里调用。现举例说明:1、建立自定义函数文件,piecewise1.m function y=piecewise1(t)分段函数 n=length(t); %计算所输入t的个数 for i=1:n if t(i)>=2 %如果t>=2时,y=1 y(i)=1;else...

怎么定义一个分段函数 在matlab中
1、绘制分段函数图像,需要知道分段函数的表达式。来绘制分段函数图像,该函数分为三段。2、x的取值范围选取0到3,y的表达式书写如下图所示,表示为每段的函数表达式乘以x区间的逻辑表达式,如果x的值在范围内,就乘以1,不在范围内,就乘以0。3、点击回车键,运行程序,运行结果如下图所示,可以看到...

急求用matlab画分段函数
如何用matlab画分段函数?这个问题可以按下列步骤来完成:第一步,对x进行赋值,如 x=-10:1:10;第二步,用句柄函数或匿名函数自定义分段函数,如func(x)func=@(x)(1.*(x>0)+unifrnd(-1,1).*(x==0)-1.*(x<0)} 这里,由于x=0,其值落在【-1,1】内,所以用unifrnd随机数来表示。...

matlab做分段函数图像?
1、建立自定义分段函数 fun=@(x)x.^3.*(x<-2*pi)+x.*sin(2*pi*10*x).*(x>=-2*pi & x<=2*pi)+x.*(x>2*pi);2、按各段区间取值,计算各段函数值 x=-3*pi:pi\/10:-2*pi %第一段 y=fun(x)plot(x,y),hold on x=-2*pi:pi\/10:2*pi %第二段 y=fun(x)p...

用matlab怎样画分段函数图
1、首先双击打开MATLAB软件,如图所示。2、然后建立一个脚本文件,具体方法如图所示。3、然后定义变量。4、然后建立循环,求解分段函数。5、然后采用以下指令画图。6、然后就可以看到画出的图片如图所示。

MATLAB如何用if自定义分段函数
1、与建立M文件类似,在命令窗口中输入edit。2、编写函数,需要注意函数命名规则,注释部分可有可无,用%开始。3、编写完成后保存文件,最好保存在当前工作路径的文件夹。4、直接输入函数名,形参,就能返回计算结果。5、和查看其它函数说明一样,输入“help 函数名” 就能看到这个函数的注释说明。

相似回答