看板 Fortran 關於我們 聯絡資訊
題目:在做量測的時候,時常碰到雜訊的問題,使得訊號的趨勢不很明顯,有時可以用 移動平均值使得資料曲線較平滑。假設每五個資料點取一個平均值稱為 m5值, 每 10個資料點取一個平均值就稱為 m10值。由一組連續資料的 m5值 (或m10 值) 構成的線條就是 m5 (或 m10) 移動平均線。寫一個包含Function的程式, 從 提供的檔案(moving.txt)中讀取資料,計算 m5 移動平均值並找出其中最大的 m5移動平均值為何。 我的程式碼: program hw7 implicit none real s integer n,i OPEN (UNIT=11,FILE='moving.txt',STATUS='OLD') OPEN (UNIT=21,FILE='final.txt',STATUS='NEW') n=57 do i=1,n read(11,90)s 90 format(f11.4) end do write(21,*)s end 我不知道的是如何再把資料讀取出來的時候 轉為陣列 然後來做運算 如求平均值(s(1)+s(2)+s(3)+...)/5 資料一共57筆 感謝 P幣2000贈送 給出方向的人 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.223.28 ※ 文章網址: http://www.ptt.cc/bbs/Fortran/M.1399812756.A.2C5.html
terryys:把s宣告成陣列,real s(57) 05/11 21:32
terryys:然後讀的時候就變成read(11,90)s(n) 05/11 21:32
terryys:應該是read(11,90)s(i) 05/11 21:32
請教一下如何用functuion接收這些數值 然後每取5個算平均值 ※ 編輯: s23325522 (140.120.223.28), 05/11/2014 22:44:08
shuyun:平均值只有53筆,資料第54筆以後沒有五個數值可算滑動平均 05/12 10:30
terryys:sum(s(a:a+b-1))/b 從a開始,拿b個數值算平均 05/12 13:34