计算两个标题之间的差异和方向

Calculating difference and direction between two headings

我有一个很大的数组,其值以度数表示风向(0-360)我需要计算相对于时间的瞬时变化率,使用向后,前向差分法和中心差分法

到目前为止,我已经设法计算出元素之间的最小角度差,但我无法弄清楚如何同时建立一个方向,即顺时针方向的+ve 差值,逆时针方向的-ve 差值。

例如

winddir =

80
80
70
70 
60
360
330

diff = min((abs(diff(winddir))),(360- abs(diff(winddir))));

差异=

 0
10
 0
10
60
30

这给出了航向之间的正确差值来计算导数,但未能显示方向顺时针逆时针,我需要!几个小时以来,我一直在努力解决这个问题,但我只是在兜圈子,有人能帮我吗?

首先,使用MATLAB的函数名作为变量名是非常不好的做法。

然后,为了按照您想要的方式计算差异:

myDiff=diff(winddir);
myDiff(myDiff<-180)=myDiff(myDiff<-180)+360;
myDiff(myDiff>180)=myDiff(myDiff>180)-360;