Vectors of different length when using plot3.

2 ビュー (過去 30 日間)
Snirisa  Gödel
Snirisa Gödel 2013 年 9 月 25 日
コメント済み: Snirisa Gödel 2013 年 9 月 26 日
Basically I want to do a 3D plot of 100 circles with different radii and on a new height plane(h) for each circle. The radius increase for each circle(constant increase) and h increase constantly.
I've never used plot3 before so this code is from the top of my head. I was thinking of using a for loop for both r and h as suggested below. But where should I begin the loop for h? In the beginning(just under r) or as below? And what does it mean that "vectors must be of same length". Which vector?
if true
% for r=1:1:100
t=linspace(0,2*pi);
x=r*cos(t);
y=r*sin(t);
for h=100:100:10000
z=h;
plot3(x,y,z)
end
end

採用された回答

Image Analyst
Image Analyst 2013 年 9 月 26 日
You might want to rethink your parameters because it sort of looks like a mess with way too many circles on the screen, but anyway, run this:
for r=1:1:100
t=linspace(0,2*pi);
x=r*cos(t);
y=r*sin(t);
for h=100:100:10000
z=h * ones(1, length(t));
plot3(x,y,z);
if r == 1 && h == 100
hold on;
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
end
drawnow;
end
end
  1 件のコメント
Snirisa  Gödel
Snirisa Gödel 2013 年 9 月 26 日
Thank you, this looks much closer to what I had in mind. As you mentioned, this looks like a mess but I'm sure it's just a matter of changing parameters in this case. I appreciate it.

サインインしてコメントする。

その他の回答 (2 件)

dpb
dpb 2013 年 9 月 25 日
Why not try it and see if it's the effect desired?
From
doc plot3
...
plot3(x,y,z), where x, y and z are three vectors of the same length, ...

Roger Stafford
Roger Stafford 2013 年 9 月 26 日
Change the line
plot3(x,y,z)
to
plot3(x,y,repmat(z,1,size(t,2)))
hold on

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by