MATLAB: Converting atan2 output to 360 deg

atan2

Hi, I'm using the function atan2, however my output is from -180 to 180 degrees (I converted from radians) How do I modify it such that it outputs a value from 0-360 degrees?
winddir = (atan2(Vi,Ui))*(180/pi);

Best Answer

  • Since it will be periodic, just add 360 if the value is less than 0. This will suffice to correct the negative angles.
    winddir = winddir + (winddir < 0)*360;
    You can use atan2d if you prefer to work in degrees, but it will map to the same range, [-180,180], so you will still need to correct for the negative angles.
    If you wanted a simple expression that works in one line of code, this should do:
    winddir = atan2d(Vi,Ui) + 360*(Vi<0);