converts a point in cartesian to cylindrical and spherical cooridantes(error:getting same answer in cylindrical & spherical coordinates)
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Sai Hitesh Gorantla
le 31 Jan 2020
Réponse apportée : dpb
le 31 Jan 2020
code:
function [Pcyl Psph] = cart2cylsph(Pcart)
% converts a point in cartesian to cylindrical and spherical cooridantes
% input and output as 3 by 1 vectors
x=Pcart(1);
y = Pcart(2);
z= Pcart(3);
rho= sqrt(x^2+y^2);
r = sqrt(x^2+y^2+z^2);
if x,y > 0
phi = atan(y/x);
elseif x,y < 0
phi = atan(y/x)+pi;
elseif x>0 && y<0
phi = 2*pi-atan(y/x);
else
phi = pi-atan(y/x);
end
if z>0
theta=atan(rho/z);
else
theta= pi - atan(rho/z);
end
Pcyl= [rho phi z]';
Psph = [r theta phi]';
end
0 commentaires
Réponse acceptée
dpb
le 31 Jan 2020
if x,y > 0
phi = atan(y/x);
elseif x,y < 0
phi = atan(y/x)+pi;
elseif x>0 && y<0
The if statements are bad syntax for the first two; they must be written in the same manner as the last...
if x>0 & y>0
phi = atan(y/x);
elseif x<0 & y<0
phi = atan(y/x)+pi;
elseif x>0 && y<0
...
I didn't read the rest of the function...
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Numbers and Precision dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!