How to create a periodic function?

152 次查看(过去 30 天)
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
James Tursa 2020-11-25
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 个评论
James Tursa
James Tursa 2020-11-25
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 2020-11-25
Yes, you are so great,thank you so much.

请先登录,再进行评论。

更多回答(2 个)

David Hill
David Hill 2020-11-25
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 个评论
Image Analyst
Image Analyst 2020-11-25
Then just use the code that you used to create the figure. It's what you want isn't it?
huazai2020
huazai2020 2020-11-25
Please see the below image I upload,it is what I want.

请先登录,再进行评论。


Setsuna Yuuki.
Setsuna Yuuki. 2020-11-25
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!

Translated by