How to create a periodic function?

180 views (last 30 days)
The function at [0,2] is y=x for [0,1] and y=2-x for [1,2], I want the above function repeated at [2,10], so I need a periodic funtion in the whole [0,10], who can help me code it ,thank you.

Accepted Answer

James Tursa
James Tursa on 25 Nov 2020
Not sure what you mean by "repeated at [2,10]". Maybe this:
y = mod(x,2);
ix = y > 1;
y(ix) = 2 - y(ix);
  9 Comments
James Tursa
James Tursa on 25 Nov 2020
Generic code could be:
% Periodic triangle wave
amplitude = whatever;
period = whatever;
y = mod(x,period);
ix = y > period/2;
y(ix) = period - y(ix);
y = (amplitude * 2 / period) * y;
huazai2020
huazai2020 on 25 Nov 2020
Yes, you are so great,thank you so much.

Sign in to comment.

More Answers (2)

David Hill
David Hill on 25 Nov 2020
y=zeros(size(x));
for k=1:5
y(x>=(k-1)*2&x<(k-1)*2+1)=x(x>=(k-1)*2&x<(k-1)*2+1);
y(x>=2*(k-1)+1&x<2*k)=2-x(x>=2*(k-1)+1&x<2*k);
end
  4 Comments
Image Analyst
Image Analyst on 25 Nov 2020
Then just use the code that you used to create the figure. It's what you want isn't it?
huazai2020
huazai2020 on 25 Nov 2020
Please see the below image I upload,it is what I want.

Sign in to comment.


Setsuna Yuuki.
Setsuna Yuuki. on 25 Nov 2020
x = [0:3:36];
y = [0 1 0 1 0 1 0 1 0 1 0 1 0];
sig = pwfun(x,y);
and create the waveform only with the intersection points.

Community Treasure Hunt

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

Start Hunting!