plotting for every single loop
7 次查看(过去 30 天)
显示 更早的评论
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)
0 个评论
采纳的回答
Walter Roberson
2020-8-5
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.
3 个评论
Walter Roberson
2020-8-5
Yes. If you look more carefully at your code,
for v=1:2:30
x=x+(0.085*N/pi)*sin(v*teta)/v;
y((v+1)/2,:)=x;
end
plot(teta,x)
You are plotting x, not y. So you do not need to record y: you could simplify the code to
for v=1:2:30
x=x+(0.085*N/pi)*sin(v*teta)/v;
end
plot(teta,x)
and then change to
for v=1:30
The indexing at a non-integer stops being a problem if you stop indexing that way ;-)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!