Plotting multiple points on a graph using for loop

조회 수: 6 (최근 30일)
Batrisyia Mohamad Asri
Batrisyia Mohamad Asri 2021년 2월 2일
댓글: SHIVAM KUMAR 2021년 2월 5일
Hi. I would like to plot multiple points on a graph using for loop and subplot. I have an xi value of 0.2 to 0.8 with increments of 0.2. And the for loop is used to go through each xi value. The legend can be hardcoded and is positioned in the 'best' location. The result should look like the first subplot below.
The equation is given by the pic below
This is what i've done so far.
clc;clear all;close all
y = @(t,xi,omega) 1-exp^-xi*omega*t/sqrt(1-xi^2)*sin(omega*sqrt(1-xi^2)*t+acos(xi));
omega = 10.26;
t = linspace(0,1,200);
%plotting
xi= 0.2:0.2:0.8;
n = length(xi);
for i=1:n
subplot(2,1,1)
plot(xi,y)
end
Your help is very much appreciated! Thank you.

채택된 답변

SHIVAM KUMAR
SHIVAM KUMAR 2021년 2월 2일
편집: SHIVAM KUMAR 2021년 2월 4일
Final version
clc
clear all
close all
fn= @(xi,omega,t) (1-((exp(-xi*omega*t))/sqrt(1-xi^2)).*sin(omega*sqrt(1-xi^2)*t+acos(xi)));
omega = 10.26;
t = linspace(0,1,200);
%plotting
x1= 0.2:0.2:0.8;
n = length(x1);
figure;
subplot 211
for i=1:n
Y = fn(x1(i),omega,t);
plot(t,Y)
hold on
end
legend("xi=0.2","xi=0.4","xi=0.6","xi=0.8")
ylim([0 2])
hold off
title("Omega=10.26")
xlabel("t")
ylabel("y")
%for second plot
next= fn(0.65,omega,t);
subplot 212
plot(t,next)
ylim([0 1.2])
hold on
legend("step response")
The indexes were not nicely choosen in function. I corrected that now though.
  댓글 수: 9
Batrisyia Mohamad Asri
Batrisyia Mohamad Asri 2021년 2월 5일
Got it! Thank you so much!
SHIVAM KUMAR
SHIVAM KUMAR 2021년 2월 5일
Accept my answer if that is correct.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by