MATLAB: Error using plot3 – Vectors must be the same length

errorlengthMATLABplot3vectors

i had constructed a code to plot 3d graph Magnetic Field
theta = [0:0.101:pi/2,3*pi/2:0.01:2*pi];
rho = sqrt(cos(theta));
[x,y]=pol2cart(theta,rho);
x1=real(x);
y1=real(y);
x2=[x1,-x1];
y2=[y1,-y1];
z=zeros(1,632);
plot3(x2,y2,z); hold on
for th=(29:29:340)
rotate(plot3(x2,y2,z,'b'),[0 1 0],th);
end
rho = 2*sqrt(cos(theta));
[x,y]= plo2cart(theta, rho);
x1=real(x);
y1=real(y);
x2=[x1,-x1];
y2=[y1,-y1];
for the=(20:20:340)
rotate(plot3(x2,y2,z,'a'),[0 1 0],th);
end
The problem is im getting error – "Vectors must be the same length.".any ideas?

Best Answer

See if this does what you want:
theta = [0:0.101:pi/2,3*pi/2:0.01:2*pi];
rho = sqrt(cos(theta));
[x,y]=pol2cart(theta,rho);
x1=real(x);
y1=real(y);
x2=[x1,-x1];
y2=[y1,-y1];
z=zeros(size(x2));
figure
plot3(x2,y2,z)
hold on
for th=(29:29:340)
p1 = plot3(x2,y2,z,'b');
rotate(p1,[0 1 0],th)
end
rho = 2*sqrt(cos(theta));
[x,y]= pol2cart(theta, rho);
x1=real(x);
y1=real(y);
x2=[x1,-x1];
y2=[y1,-y1];
for the=(20:20:340)
p2 = plot3(x2,y2,z,'r');
rotate(p2,[0 1 0],th)
end
hold off
grid on
legend([p1,p2],'b','a')
A few changes were necessary to make it work correctly.
Related Question