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

Matlab 计算两个标题之间的差异和方向,matlab,derivative,heading,Matlab,Derivative,Heading,我有一个大数组,其中的值以度(0-360)表示风向。我需要使用向后、向前和中心差分方法计算瞬时变化率 到目前为止,我已经设法计算出元素之间的最小角度差,但我无法计算出如何确定方向,即,顺时针方向为+ve差,逆时针方向为-ve差 比如说 温迪尔= 80 80 70 70 60 360 330 diff = min((abs(diff(winddir))),(360- abs(diff(winddir)))); 差异= 0 10 0 10 60 30 这给出了用于计算导数的标题之间差值的

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

到目前为止,我已经设法计算出元素之间的最小角度差,但我无法计算出如何确定方向,即,顺时针方向为+ve差,逆时针方向为-ve差

比如说

温迪尔=

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;
myDiff=diff(winddir);
myDiff(myDiff180)-360;

您只希望差异属于(-180180),对吗?谢谢您的建议,这非常有效。这是我第一次尝试编程,我发现一开始很难掌握。再次感谢你