# How to create a periodic function?

13 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.

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);

huazai2020 on 25 Nov 2020
As I can see in the help document， mod has the function similar to division ，but not as you said. What is the reason?
mod
Modulus after division
Syntax
M = mod(X,Y)
Description
M = mod(X,Y) if Y ~= 0, returns X - n.*Y where n = floor(X./Y). If Y is not an integer and the quotient X./Y is within roundoff error of an integer, then n is that integer. The inputs X and Y must be real arrays of the same size, or real scalars.
The following are true by convention:
• mod(X,0) is X
• mod(X,X) is 0
• mod(X,Y) for X~=Y and Y~=0 has the same sign as Y.
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 on 25 Nov 2020
Yes, you are so great,thank you so much.

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

Show 1 older comment
David Hill on 25 Nov 2020
Are your functions changing? Recommend showing us the input and output you want.
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 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. 