matlab分段函数怎么编写
0<x<3:y=4*x;3<x<6:y=12;6<x<9:y=-4*x+36;9<x<12;y=0...
0<x<3:y=4*x;
3<x<6:y=12;
6<x<9:y=-4*x+36;
9<x<12;y=0 展开
3<x<6:y=12;
6<x<9:y=-4*x+36;
9<x<12;y=0 展开
8个回答
展开全部
matlab分段函数编写的操作方法和步骤如下:
1、第一步,在计算机桌面上打开MATLAB软件,如下图所示。
2、其次,完成上述步骤后,单击matlab软件左上方的“新建”按钮以创建脚本文件,如下图所示。
3、接着,完成上述步骤后,定义变量,如下图红框标注所示。
4、然后,完成上述步骤后,建立一个循环来求解分段函数,如下图所示。
5、随后,完成上述步骤后,使用piot(x,y)指令绘制图形,如下图所示。
6、最后,完成上述步骤后,显示最终分段函数的效果,如下图所示。这样,问题就解决了。
展开全部
首先,建立自定义分段函数,即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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有很多种形式可以实现分段函数,其中最简单而运算起来又最快的是:
下面以你的题目为例
function m=fenduanhanshu(t)
m=t*(t>=0 & t1 & t<=2)+0.1*(t2)
【解释】
在Matlab中,上述函数中的表达式m=t*(t>=0 & t1 & t<=2)+0.1*(t2)的运算规则是当布尔表达式为true时,布尔表达式的值取1,参与运算,否则取0,参与运算。
例如,当表达式中的(t>=0 & t=0 & t1 & t<=2)和(t2)都不成立,取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自带的函数工具箱,具体大家自己找下。
下面以你的题目为例
function m=fenduanhanshu(t)
m=t*(t>=0 & t1 & t<=2)+0.1*(t2)
【解释】
在Matlab中,上述函数中的表达式m=t*(t>=0 & t1 & t<=2)+0.1*(t2)的运算规则是当布尔表达式为true时,布尔表达式的值取1,参与运算,否则取0,参与运算。
例如,当表达式中的(t>=0 & t=0 & t1 & t<=2)和(t2)都不成立,取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自带的函数工具箱,具体大家自己找下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询