자료값 출력

게시판 IDL Q&A 자료값 출력

4 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #2454 Reply
      223ffdf
      회원

      dir = ‘C:\Users\Desktop\4_T_S Diagram\’

      fn1 = dir + ‘ST.1.txt’

      fl = file_lines(fn1)-1

      sal1 = fltarr(fl)

      temp1 = fltarr(fl)

      tmp = ‘ ‘
      openr, 1, fn1
      for i = 0, 0 do begin
      readf, 1, tmp
      endfor
      i = 0
      while (not eof(1)) do begin
      readf, 1, d1, d2, format = ‘(i6, 1x, i5)’
      temp1(i) = d1

      sal1(i) = d2

      i = i + 1
      endwhile
      close, 1
      ;stop
      save, sal1, temp1, filename = dir + ‘ST.1 T-S.sav’
      print, ‘finish’

      이렇게 한후 print sal1 temp1 을하면 소숫점 뒷숫자가 0000으로 고정되어있습니다.
      무엇이 잘못됬나요??
      sal1을 예를들면 32.13 32.45 32.56 33.12 …가 정확한 데이터값인데 print를 하면 32.0000 32.0000 32.0000 33.0000 으로 출력됩니다.

    • #2455 Reply
      Sangwoo
      회원

      애초에 READF문에서 d1, d2를 I 기술자를 사용하여 정수값으로 읽었기 때문에 소수점 아래의 정보가 아예 사라졌기 때문입니다. 따라서 READF문에서 F 기술자를 사용하여 실수값으로 읽어야 합니다. 예시하신 값들을 보면 대략 F5.2 정도가 적절할 것 같습니다.

    • #2456 Reply
      223ffdf
      회원

      i를 f5.2로 바꾸고 실행하라는 말씀이신가요??

    • #2459 Reply
      jhlee
      Keymaster

      format 키워드 사용 시 i와 f 등의 코드를 이용하여 세밀한 표현을 할 수 있습니다.
      이때 i는 integer, f는 float을 의미합니다. 즉 정수와 실수 표현을 선언하는 내용입니다.
      그러므로 실수로 표현하시고자 한다면 Sangwoo님의 말씀처럼 f5.2와 같이 수정해주셔야 합니다.
      IDL 도움말의 format codes를 검색해보시면 도움이 될 것 같습니다.

    • #2460 Reply
      223ffdf
      회원

      감사합니다. 해볼게요!!

4 답변 글타래를 보이고 있습니다
'자료값 출력'에 답변달기
글쓴이 정보: