计算两个标题之间的差异和方向
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;
我有一个很大的数组,其值以度数表示风向(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;