- This topic has 1개 답변, 2명 참여, and was last updated 9 years, 9 months 전에 by Jonghyuk.
-
글쓴이글
-
-
cho회원
안녕하세요. 코딩 중 잘 안되는 부분이 있어서 도움 청합니다.
file1=’flux_S1.txt’
line=file_lines(file1)
data=dblarr(35,line)openr,1,file1
readf,1,data
close,1yy=fix(Reform(data[0,*]))
mm=fix(Reform(data[1,*]))
dd=fix(Reform(data[2,*]))
hh=fix(Reform(data[3,*]))
tt=fix(Reform(data[4,*]))
ux19=Reform(data[5,*])
uy19=Reform(data[6,*])
uz19=Reform(data[7,*])
ts19=Reform(data[8,*])
h2o19=Reform(data[9,*])
co219=Reform(data[10,*])
ustar19=Reform(data[11,*])
hc19=Reform(data[12,*])
latent19=Reform(data[13,*])
fc19=Reform(data[14,*])
ux14=Reform(data[15,*])
uy14=Reform(data[16,*])
uz14=Reform(data[17,*])
ts14=Reform(data[18,*])
h2o14=Reform(data[19,*])
co214=Reform(data[20,*])
ustar14=Reform(data[21,*])
hc14=Reform(data[22,*])
latent14=Reform(data[23,*])
fc14=Reform(data[24,*])
ux7=Reform(data[25,*])
uy7=Reform(data[26,*])
uz7=Reform(data[27,*])
ts7=Reform(data[28,*])
h2o7=Reform(data[29,*])
co27=Reform(data[30,*])
ustar7=Reform(data[31,*])
hc7=Reform(data[32,*])
latent7=Reform(data[33,*])
fc7=Reform(data[34,*])다음과 같은 텍스트 파일 읽은 후
For y=2013L,2014 Do begin
For m=1L,12 Do begin
For j=1L,31 Do begin
idx=where(yy EQ y and mm EQ m and dd EQ j, count)
if count NE 0 Then Begin
yy1=yy[idx]
mm1=mm[idx]
dd1=dd[idx]
ux191=ux19[idx]
uy191=uy19[idx]
uz191=uz19[idx]
ts191=ts19[idx]
h2o191=h2o19[idx]
co2191=co219[idx]
ustar191=ustar19[idx]
hc191=hc19[idx]
latent191=latent19[idx]
fc191=fc19[idx]
for구문으로 제가 원하는 조건에 해당하는 값을 찾으려고 하는데…원본 파일에는 분명히 있는 숫자인데, For와 If구문을 돌리면서 원하는 값 선택시 NAN값으로 출력되는게 있는데…어떻게 수정해야 할까요?
즉, 원본 파일에는 값이 존재하는데 ux191값으로 뽑으면 NAN값으로 나오는게 있습니다.도움주시면 감사하겠습니다.
-
Jonghyuk회원
이런 문제는 실제 상황을 보기 전에는 정답이 없습니다. 그리고 앞으로도 파일을 만나실 때마다 다른 상황이 될 것이구요.
어디서부터 잘못 된 것인지 찾아 올라가는 디버깅을 해야 하는데요, 여기서는 NaN이 등장한다는 것에 눈길이 갑니다. 즉, Float형 변수로 받을 수 없는 내용이 파일 어딘가에 잠복해 있는거죠. 예를들면, — 같은 표시라든지, comment 같은 것입니다.
자료가 모두 숫자로 이루어져 있다면 문제 없겠지만 중간에 이런 문자들(숫자화될 수 없는)이 끼어 있다면 NaN으로 읽어들일 가능성이 높습니다.그리고 이런 문제는 readcol로 해결하시는 게 가장 빠르지 않을까 생각됩니다.
아래 링크를 보세요.
http://www.idl-envi.co.kr/callcenter/tips/view.php?num=18&page=5
-
-
글쓴이글