回 帖 发 新 帖 刷新版面

主题:缺测值的处理

fn后面到的是风速数据,有31*8行,前面31*4是2分钟数据,等号后面31*4行是10分钟数据,我需要读取10分钟的数据
fn
....................................
166033 146034 155031 134031 147043 132039.
127033 118033 110035 117034 107038 126025
125027 076014 125026 137028 148025 //////
////// ////// PPC000 ////// ////// //////
////// PPC012 ////// ////// ////// //////.
...............................
我想把数据中的//////和PPC???替换成999999,用下面的语句            
                   do j=1,n
                       if(b(j)=='//////'.or.b(j)==‘PPC???’) b(j)='999999'
                       read(b(j),"(i6)")a(i,j)
                   enddo
为什么结果是这样啊
166033 146034 155031 134031 147043 132039
127033 118033 110035 117034 107038 126025
125027 076014 125026 137028 148025 126025
125027 076014 125026 137028 148025 126025
125027 076014 125026 137028 148025 126025
....................................

回复列表 (共12个回复)

11 楼

将/////替换成NAN,****等等都可以读取出来,为甚么//////不可以啊,有那位高手能够
解答啊

12 楼

[quote]将/////替换成NAN,****等等都可以读取出来,为甚么//////不可以啊,有那位高手能够
解答啊
[/quote]
是默认的类型问题吧。NAN,和***,其实是数值型的。当位数不足时,写入***。当除数为0时,写入nan。说明Fortran将nan和***默认为特殊的数值。

我来回复

您尚未登录,请登录后再回复。点此登录或注册