# converts a point in cartesian to cylindrical and spherical cooridante​s(error:ge​tting same answer in cylindrical & spherical coordinates)

1 visualizzazione (ultimi 30 giorni)
Sai Hitesh Gorantla il 31 Gen 2020
Risposto: dpb il 31 Gen 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 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

dpb il 31 Gen 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 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Logical in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by