MATLAB Answers

How to plot sine graph by using for loop?

59 views (last 30 days)
I tried to use a for loop to plot a sine graph. The values are generated but then when I try to graph them, I get either an error or no graph. Here's my code:
for i = 0:0.1:2*pi
m=sin(i);
n=i;
plot(n,m,'-r');
hold on
end

  2 Comments

Mohammad Alhashash
Mohammad Alhashash on 5 Jun 2019
do you want to animate the sine graph or just plot it
Xing Xing
Xing Xing on 5 Jun 2019
I just want to plot it with this for loop.

Sign in to comment.

Accepted Answer

Alex Mcaulley
Alex Mcaulley on 5 Jun 2019
You don't need a loop, just:
theta = 0:0.1:2*pi;
plot(theta,sin(theta))

  6 Comments

Show 3 older comments
Alex Mcaulley
Alex Mcaulley on 5 Jun 2019
With your code, you are generating one point in each iteration, not a unique line. If you want to see it:
for i = 0:0.1:2*pi
m=sin(i);
n=i;
plot(n,m,'*r');
hold on
end
numel(findobj(gca,'Type','Line'))
AZEEM IMTIAZ
AZEEM IMTIAZ on 4 Aug 2019
you need to define t as a continuous variable in the first line then apply for loop on the frequency as discrete values. so that each frequency point will sweep over the time that you have defined in the first line. hope this helps!
t=0:0.04:5;
hold on
for f=[0.7 1 1.5 2]
y=cos(2*pi*f*t);
plot(t,y)
end

Sign in to comment.

More Answers (1)

Mohammad Alhashash
Mohammad Alhashash on 5 Jun 2019
maybe that is what you need.
t= 0:0.01:2*pi;
m =sin(t);
t_plot = NaN(1,length(t));
m_plot = NaN(1,length(m));
u = 1;
for i = 1:length(t)
cla
t_plot(i) = t(u);
m_plot(i) = m(u);
plot(t_plot,m_plot)
drawnow
u = u + 1;
end

  1 Comment

Xing Xing
Xing Xing on 5 Jun 2019
I understand what is my problem and thank you for your answer!

Sign in to comment.

Sign in to answer this question.