我有一个大的数组,其值代表风向度(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
这给出了标题之间正确的差异值来计算导数,但未能显示方向顺时针和逆时针,这是我需要的!我已经试图弄清楚好几个小时而且我只是绕圈子走了,有人可以帮帮我吗?
答案 0 :(得分:0)
首先,将MATLAB的函数名称用作变量名是非常糟糕的做法。
然后,为了按照你想要的方式计算你的差异:
myDiff=diff(winddir);
myDiff(myDiff<-180)=myDiff(myDiff<-180)+360;
myDiff(myDiff>180)=myDiff(myDiff>180)-360;