Replicating a plot over multiple periods in the same figure

2 views (last 30 days)
I have a piecewise function defined by the following:
v = @(t,a,b) (t>=a) & (t<b);
f=@(t) 0.*v(t,-1,0) + 2*t.*v(t,0,0.5) + 0.*v(t,0.5,0.5) +...
(2*t-2).*v(t,0.5,1) + 0.*v(t,1,2)
t=[0:0.01:1];
I can plot this function over the interval (0,1), but I need to plot it over several intervals, while maintaining the shape and values of the function.
Note: The lower and upper limits of t in the function can be increased and decreased.
Thanks all.
  1 Comment
Walter Roberson
Walter Roberson on 4 Nov 2011
You might as well simplify your function to
f = @(t) 2*t.*v(t,0,0.5) + (2*t-2).*v(t,0.5,1)
as the 0.* parts are never going to add anything to the sum.

Sign in to comment.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 4 Nov 2011
If a and b are varied, then you need to put a and b as input arguments for f too.
Even with that, I think it's still hard to make it work for any time interval as a and b need to vary according to the time.
You might take a complete different route to make the function. Is that you need to create a saw-tooth wave signal? What are the required calibration parameters, the frequency, the magnitude? Once you put down those requirements, I think there is a better way to do this.
t=0:0.01:1;
y=@(t) mod(2*t-1,2)-1;
figure(2);plot(t,y(t));
t=-1:0.01:2;
figure(3);plot(t,y(t));

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!