# converting atan2 output to 360 deg

182 ビュー (過去 30 日間)
shobhit mehrotra 2015 年 4 月 13 日

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);
##### 1 件のコメント表示 なし非表示 なし
Image Analyst 2015 年 4 月 13 日
There is an atan2d() function you know. All the functions have "d" versions that work in degrees instead of radians. Though it goes from -180 to +180.

サインインしてコメントする。

### 採用された回答

John D'Errico 2015 年 4 月 14 日

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);
##### 1 件のコメント表示 なし非表示 なし
shobhit mehrotra 2015 年 4 月 14 日
most excellent thank you!

サインインしてコメントする。

### その他の回答 (2 件)

Stephen23 2022 年 5 月 30 日

The simple, robust, and efficient solution is to use MOD:
mod(atan2d(Y,X),360)
##### 0 件のコメント表示 -1 件の古いコメント非表示 -1 件の古いコメント

サインインしてコメントする。

theodore panagos 2018 年 11 月 7 日
You can use the formula:
atan(x,y)=180/pi()*(pi()-p()/2*(1+sign(x))*(1-sign(y^2))-pi()/4*(2+sign(x))*sign(y)
-sign(x*y)*atan((abs(x)-abs(y))/(abs(x)+abs(y))))
That formula give the angle from 0 to 360 degrees for any value of x and y.
x=x2-x1 and y=y2-y1
For x=y=0 the result is undefined.
##### 2 件のコメント表示 1 件の古いコメント非表示 1 件の古いコメント
Nicolas soto vallejos 2022 年 5 月 30 日
Have to say this formula is awsome if you only need to know what quarternal direction the vector is traveling in you could just use the first part. sure only returns in 45 deg but it makes it easier to work with and ofcourse you could allways use the entire thing if you need exact angles but i'm amazed at the brillians of this formula 10/10!

サインインしてコメントする。

### カテゴリ

Help Center および File ExchangeHeat Transfer についてさらに検索

### Community Treasure Hunt

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

Start Hunting!