看板 TY_Research 關於我們 聯絡資訊
wind //原始資料(就你說的那種配置0(360),90,180,270) 用三角函數 u //東西向風 v //南北向風 分解風向 u=sin(wind) //東西向風 v=cos(wind) //南北向風 avgu=(u1+u2+u3+u4...)/n //算好平均後... avgui=avgu*1000 //先乘1000是為了下面那行如果用數學或專用函式解不出來 avgui設成 整數 , 把後面小數點忽略掉 , 乘1000是為了要取整數而又要避開大的誤差 , *1000再換 成整數應該就是原本取到小數第三位的結果 avgv=(v1+v2+v3+v4...)/n avgvi=avgv*1000 sin(x) = avgui/1000 cos(x) = avgvi/1000 //兩行都成立下解出 x 應該就是你要的答案 至於上面這行怎麼用數學反解x...我忘了... 不過如果你是用程式寫的話 也許可以這樣測吧(下面這好像是類似fortran的寫法) do i=0,3600,1 //從0開始跑到3600 每跑一次迴圈 i+1 ex:0,1,2,3....,3600 j=cos(i)*1000 k=sin(i)*1000 //j,k設整數 忽略掉後面的小數點 if((k .eq. avgui) .and. (j .eq. avgvi)) answer=i/10 //i設整數(int) answer設成 double 或 float end if end do 然後answer就是你要的答案了 不過我想如果是用氣象相關的程式的話 sin(x) = avgui/1000 和 cos(x) = avgvi/1000 想要求x 應該會有直接可以用的函式 , 如果手動算...那大概就是針對那兩行用數學解開x ※ 引述《ERQQ ()》之銘言: : 我要計算一個氣象測站,在各月某幾天的平均風向,手上的資料是以北定義成0=360度 : 東=90度 西=270度 南=180度 以此類推 : 數據類似如下 : ... : ... : 43 : 42.8 : 42.8 : 37.1 : 222.7 : 275.4 : 275.4 : 275 : 每十分鐘一次 : 由於使用算數平均不準,會使結果偏南 : (例:北風350度與東風90度平均應為接近東北風的45度,可是平均後卻是接近西南風) : 該如何正確 但是快速的處理數據呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.85.149 ※ 編輯: civelant 來自: 59.112.85.149 (12/02 02:23)
ERQQ :哇嗚! 謝謝! 研究一下.. 12/02 07:19
※ 編輯: civelant 來自: 140.137.32.82 (12/02 11:14)
biostar :c大反應真快,解析幾何的算法這麼快就推演出來 12/02 18:18
seeback :推一下我已經忘記怎麼寫的程式語言XD 12/04 14:42
post01 :希望對您有幫助 http://www.94istudy.com 07/28 16:58