How to create a periodic function?

147 次查看(过去 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.

类别

Help CenterFile Exchange 中查找有关 Signal Processing Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by