Polar to cartesian conversion problem
조회 수: 3 (최근 30일)
이전 댓글 표시
Hey,
I need to convert two vectors in polar coordinates (rho,phi) to cartesian coordinates, but something goes wrong because if I convert it back (from cartesian to polar) I don't get the same results (
).
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/353987/image.png)
phi=linspace(0,2*pi,N);
rho=linspace(0,R_a,N);
[x,y] = pol2cart(phi,ro);
[theta2,rho2] = cart2pol(x,y);
Thanks in advance.
댓글 수: 0
채택된 답변
Stephen23
2020년 8월 31일
편집: Stephen23
2020년 8월 31일
"but something goes wrong because if I convert it back (from cartesian to polar) I don't get the same results"
Nothing goes wrong, you just have two different representations of the same angle.
Your input angles are given over the range 0 .. 2*pi, but cart2pol documentation clearly states that its ouput "...value of the angle is in the range [-pi pi]", so we would certainly not expect to have the same values.
You can convert to 0..2*pi using mod:
theta2 = mod(theta2,2*pi);
Note that due to floating point error we would still not expect those values to be exactly the same, but close enough.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Array Geometries and Analysis에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!