假設(shè)要用MATLAB繪制如下分段函數(shù)的函數(shù)圖像:
順便分享一下這個(gè)分段函數(shù)的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
個(gè)人偏向于第二種窝爪,順便放在一個(gè)函數(shù)腳本里:
% myFun.m
function y = myFun(x)
y = x.*(x>=0 & x<1) + x^2.*(x>=1 & x<2) + 4.*(x>=2 & x<3);
end
然后在其他腳本或者命令窗口中進(jìn)行調(diào)用:
x = 0:0.01:5;
y = myFun(x);
plot(x,y,'r-')
grid on