plotting piecewise periodic function

6 Ansichten (letzte 30 Tage)
omar amr
omar amr am 31 Dez. 2021
Beantwortet: Image Analyst am 31 Dez. 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

Antworten (2)

Jonas
Jonas am 31 Dez. 2021
you could generate the values for one cycle and then repeat the values using repmat()

Image Analyst
Image Analyst am 31 Dez. 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);

Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by