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

时间:2015-10-17 10:18:18

标签: matlab derivative heading

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

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

例如

winddir =

80
80
70
70 
60
360
330

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

diff =

 0
10
 0
10
60
30

这给出了标题之间正确的差异值来计算导数,但未能显示方向顺时针逆时针,这是我需要的!我已经试图弄清楚好几个小时而且我只是绕圈子走了,有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

首先,将MATLAB的函数名称用作变量名是非常糟糕的做法。

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

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