[问题] 读取资料时用阵列表示

楼主: s23325522 (披着狼皮的羊)   2014-05-11 20:52:34
题目:在做量测的时候,时常碰到噪声的问题,使得讯号的趋势不很明显,有时可以用
移动平均值使得资料曲线较平滑。假设每五个资料点取一个平均值称为 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赠送
给出方向的人
作者: terryys (terry)   2014-05-11 21:32:00
把s宣告成阵列,real s(57)然后读的时候就变成read(11,90)s(n)应该是read(11,90)s(i)
作者: shuyun   2014-05-12 10:30:00
平均值只有53笔,资料第54笔以后没有五个数值可算滑动平均
作者: terryys (terry)   2014-05-12 13:34:00
sum(s(a:a+b-1))/b 从a开始,拿b个数值算平均

Links booklink

Contact Us: admin [ a t ] ucptt.com