converts a point in cartesian to cylindrical and spherical cooridantes(error:getting same answer in cylindrical & spherical coordinates)
조회 수: 1 (최근 30일)
이전 댓글 표시
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
채택된 답변
dpb
2020년 1월 31일
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
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!