How to plot sine graph by using for loop?

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

do you want to animate the sine graph or just plot it
I just want to plot it with this for loop.

Sign in to comment.

 Accepted Answer

You don't need a loop, just:
theta = 0:0.1:2*pi;
plot(theta,sin(theta))

6 Comments

I know but if I want to use this for loop, how to plot it ?
It make no sense, but one option is:
plot(0,0);
h = findobj(gca,'Type','Line');
for i = 0:0.1:2*pi
m=sin(i);
n=i;
set(h,'XData',[get(h,'XData'),n])
set(h,'YData',[get(h,'YData'),m])
end
I was tried my code in old version of MATLAB and it works, but in 2018b which is the version I have right now it doesn't work. It's really weird and I don't understand. Thank you for your help and option! Really appreciated!
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'))
OH, I see! Thanks!
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)

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

I understand what is my problem and thank you for your answer!

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!