How to plot a piece-wise function using FPLOT

5 次查看(过去 30 天)
Hello Please state if possible, how to use fplot to have the graph of a piecewise function. Actually the code below is exactly according to the matlab page: https://uk.mathworks.com/help/matlab/ref/fplot.html
fplot(@(x) exp(x),[-3 0],'b')
hold on
fplot(@(x) cos(x),[0 3],'b')
hold off
grid on
But, it does not work for me. The code plots only the second function, cos(x). Please help me if possible.

采纳的回答

Star Strider
Star Strider 2017-1-29
编辑:Star Strider 2017-1-29
It is easiest to use ‘logical indexing’ in your function.
This works:
f = @(x) exp(x).*(x<=0) + cos(x).*(x>0);
figure(1)
fplot(f, [-3, 3])
grid
EDIT The code you posted actually works for me without error, producing the correct plot. The online documentation is for the current release (that I believe is still R2016b), so if you have an earlier version, that could be a problem. My code should work.
  6 个评论
Ali Remo
Ali Remo 2017-1-29
@Star Strider , Thank you very much for your help. Yes actually the main code contains functions which are continuous in continuous intervals. The code above which I wrote was only to say what my problem is actually. In each interval I have a different function, but finally they generate a continuous function, for example:
in the interval [0 1] ....... f1(x) = x
in the interval [1 2] ....... f2(x) = x^2
.
.
.
and as you can see, these two samples are continuous at the point x=1. The point is that I have to produce these function in a FOR LOOP and plot them in a single graph. Thank you
Star Strider
Star Strider 2017-1-29
My pleasure.
If my Answer helped you solve your problem, please Accept it.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Line Plots 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by