MATLAB: Plotting for every single loop

for loopplotting

Hi everyone.
I got this code and I have a question about it. Is it work for every single "v"? like 1, 2 ,3 ,4 …….
If not how can I make it for every "v" ?
N=45;
teta=0:0.02:5*pi;
y=zeros(10,length(teta));
x=zeros(size(teta));
for v=1:2:30
x=x+(0.085*N/pi)*sin(v*teta)/v;
y((v+1)/2,:)=x;
end
plot(teta,x)

Best Answer

  • for v=1:2:30
    means that the loop should execute for 1, 1+2, 1+2+2, 1+2+2+2, 1+2+2+2+2 and so on -- which is to say, 1, 3, 5, 7, 9, and so on.
    y((v+1)/2,:)=x;
    Because your v values are presently odd integers, then v+1 becomes the next even integer, and /2 will be an integer. So y(1) then y(2), y(3) and so on will be assigned to.
    If you were to switch to
    for v=1:30
    then you would be including even v such as 2, and (2+1)/2 would not be an integer, and you would not be able to use (v+1)/2 as a subscript.