Plotting multiple points on a graph using for loop

3 vues (au cours des 30 derniers jours)
Batrisyia Mohamad Asri
Batrisyia Mohamad Asri le 2 Fév 2021
Commenté : SHIVAM KUMAR le 5 Fév 2021
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.

Réponse acceptée

SHIVAM KUMAR
SHIVAM KUMAR le 2 Fév 2021
Modifié(e) : SHIVAM KUMAR le 4 Fév 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 commentaires
Batrisyia Mohamad Asri
Batrisyia Mohamad Asri le 5 Fév 2021
Got it! Thank you so much!
SHIVAM KUMAR
SHIVAM KUMAR le 5 Fév 2021
Accept my answer if that is correct.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by