a loop problem in matlab
2 ビュー (過去 30 日間)
古いコメントを表示
My code is:
for p=1:0.01:2;
plot3(p,p.^2,p.^3);
end
I want to use a loop of p to create a three dimentional figure. while no error occurs, the figure is strange. I simplify my code into the above code. Any help is very appreciated! Thanks.
2 件のコメント
Adam Danz
2019 年 1 月 10 日
A solution was provided below but it does not explain why your code doesn't work and that's the important part.
There are two problems.
1) When you're plotting in a loop (which often can be avoided), you need to 'hold' the axes to prevent the plot from being over-written on each iteration. That would look something like this:
figure
ah = axes;
hold(ah, 'on')
for
plot(ah, x, y)
end
2) On each iteration of your for-loop, you're plotting a single point and since you didn't specify a marker type, plot3 is trying to draw a line. You can't draw a line with a single point which is why your plot ended up completely empty. One solution would have been to specify a marker type :
plplot3(p, p.^2, p.^3, 'bo')
But the best solution is to avoid the loop altogether as is demonstrated in the answer below.
採用された回答
madhan ravi
2019 年 1 月 10 日
編集済み: madhan ravi
2019 年 1 月 10 日
Without loop:
p=1:0.01:2;
plot3(p,p.^2,p.^3); % no loops needed
grid on
With loop:
p=1:0.01:2;
h = animatedline;
grid on
view(3); % lookup doc
for i=1:numel(p)
addpoints(h,p(i),p(i)^2,p(i)^3);
drawnow
end
2 件のコメント
madhan ravi
2019 年 1 月 10 日
編集済み: madhan ravi
2019 年 1 月 10 日
Anytime :) , sure let me try and sorry I missed your reply there , let me get some sleep and then get back to you there.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Graphics Performance についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!