MATLAB: Set new origin in polar coordinates

set new origin

Hi, I have a set of data in polar coordinates (r, theta). The default origin for matlab is (0,0). How I can change the origin to other points, such as (0,3)?
Thanks a lot.

Best Answer

  • One of the easiest ways I can think of is to convert the points from polar to cartesian, do the translation, and then convert back to polar. For example
    r = 1;
    theta = linspace(0, 2*pi, 100);
    translate = [0 3];
    x = r*cos(theta) + translate(1);
    y = r*sin(theta) + translate(2);
    r_trans = hypot(y, x);
    theta_trans = atan2(y, x);
    polarplot(theta_trans, r_trans)
    Original:
    Translated: