plotting piecewise periodic function

조회 수: 3 (최근 30일)
omar amr
omar amr 2021년 12월 31일
답변: Image Analyst 2021년 12월 31일
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

답변 (2개)

Jonas
Jonas 2021년 12월 31일
you could generate the values for one cycle and then repeat the values using repmat()

Image Analyst
Image Analyst 2021년 12월 31일
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);

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by