Hello, I have been trying to surf two parallel circles but data dimensions don't match and I don't know why. Any help would be nice. Thank you, Omar

5 Ansichten (letzte 30 Tage)
radius = 1; center = [0 0]; theta = linspace(0,2*pi); X = center(1)+radius.*cos(theta); X=[X;X]; Y = center(2)+radius.*sin(theta); Y=[Y;Y]; Z = zeros(size(X));Z=[Z;Z];Z(2,:)=1;surf(X,Y,Z); hold on;

Akzeptierte Antwort

elias GR
elias GR am 6 Okt. 2016
Furthermore, surf is not the right command to do what you want. Try the following instead:
fill3(X(1,:),Y(1,:),Z(1,:),'r')
hold on
fill3(X(2,:),Y(2,:),Z(2,:),'b')
  2 Kommentare
Omar Rashed
Omar Rashed am 6 Okt. 2016
Thanks, I realised surf was wrong as well after it gave me a hollow cylinder. But I didn't get two circles when I used your answer, it gave me one, even after correcting the last line

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Massimo Zanetti
Massimo Zanetti am 6 Okt. 2016
Bearbeitet: Massimo Zanetti am 6 Okt. 2016
You doubled Z, delete the
Z=[Z;Z];
line and everything will be fine.

elias GR
elias GR am 6 Okt. 2016
Bearbeitet: elias GR am 6 Okt. 2016
Erase Z=[Z;Z]; This is not needed because X already have 2 rows and size(X)=[2 100]

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by