假设要用MATLAB绘制如下分段函数的函数图像:
顺便分享一下这个分段函数的Markdown代码:
f(x)=\begin{cases}
x & 0\le x<1\\
x^2 & 1\le x< 2\\
4 & 2\le x<3
\end{cases}
方法一
x = 0:0.01:5;
y = zeros(size(x));
for i = 1:length(x)
if(x(i)>=0) & x(i)<1
y(i)=x(i);
if(x(i)>=1) & x(i)<2
y(i)=x(i)^2;
if(x(i)>=2) & x(i)<3
y(i)=4;
end
end
plot(x,y,'r-')
grid on
方法二
x = 0:0.01:5;
y = x.*(x>=0 & x<1) + x^2.*(x>=1 & x<2) + 4.*(x>=2 & x<3);
plot(x,y,'r-')
grid on
个人偏向于第二种,顺便放在一个函数脚本里:
% myFun.m
function y = myFun(x)
y = x.*(x>=0 & x<1) + x^2.*(x>=1 & x<2) + 4.*(x>=2 & x<3);
end
然后在其他脚本或者命令窗口中进行调用:
x = 0:0.01:5;
y = myFun(x);
plot(x,y,'r-')
grid on
网友评论