# plotting piecewise periodic function

25 views (last 30 days)
omar amr on 31 Dec 2021
Answered: Image Analyst on 31 Dec 2021
How would I plot this function on the range 0<=t<=20?
x= 2(1-t), 0<=t<=1
x= t-1, 1<t<=3
Walter Roberson on 31 Dec 2021

Jonas on 31 Dec 2021
you could generate the values for one cycle and then repeat the values using repmat()

Image Analyst on 31 Dec 2021
Your question did not specify what the value of x is for t > 3 so I'll assume it's zero.
Try this:
% How would I plot this function on the range 0<=t<=20?
% x= 2(1-t), 0<=t<=1
% x= t-1, 1<t<=3
numElements = 512; % Whatever resolution you want.
% Get t axis.
t = linspace(0, 20, numElements);
% Initialize x to all zeros.
x = zeros(1, numElements);
% Get the first range.
indexRange1 = t >= 0 & t <= 1;
x(indexRange1) = 2 * (1 - t(indexRange1));
% Get the second range.
indexRange2 = t > 1 & t <= 3;
x(indexRange2) = t(indexRange2) - 1;
% Plot x
plot(t, x, 'b-', 'LineWidth', 2);
grid on;
fontSize = 18;
title('x vs. t', 'FontSize', fontSize);
xlabel('t', 'FontSize', fontSize);
ylabel('x', 'FontSize', fontSize); 