Plotting multiple points on a graph using for loop

13 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

SHIVAM KUMAR
SHIVAM KUMAR el 2 de Feb. de 2021
Editada: SHIVAM KUMAR el 4 de Feb. de 2021
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 comentarios
Batrisyia Mohamad Asri
Batrisyia Mohamad Asri el 5 de Feb. de 2021
Got it! Thank you so much!
SHIVAM KUMAR
SHIVAM KUMAR el 5 de Feb. de 2021
Accept my answer if that is correct.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by