데이터 처리

게시판 IDL Q&A 데이터 처리

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #2376 Reply
      inmyta27
      회원

      저는 아래처럼 한 열로 된 데이터가 쭉 있는데 데이터값이 0보다 큰 값들이
      연속으로 끊기지 않고, 5개 이상 일때 이 파일을 선택하여 사용하고,
      관측값이 중간에 끊기고, 연속적으로 0 이상의 값이 5개 미만일때는 이 파일은 건너띄게끔 프로그램을 짜고 싶은데
      생각만큼 되지가 않네요

      아래처럼 생긴 파일들이 수천개가 있으며, 가령 아래처럼 두번째 부터 7번 줄까지는 이어지지만
      8번째에 0이 있으면서 관측값이 소실되었을 때 이 파일을 안쓰고 그 다음 파일을 읽겠금 하고 싶은데
      쉬운 방법이 있을까요
      혹시 방법이 있을까 싶어 이렇게 글을 올립니다. ㅠ

      0.0
      200
      210
      30
      40
      10
      20
      0.0
      0.0
      10
      ;

    • #2378 Reply
      Sangwoo
      회원

      어차피 한 파일의 모든 값들을 하나의 배열에 넣어두고 순차적인 인덱싱을 하여 체크하는 방법뿐일 것 같습니다. 예를 들어, 파일 하나를 읽었는데 100의 값들이 있다고 가정한다면 100개의 값들로 이루어진 배열이 일단 얻어질 것이고, 이 배열에 대하여 처음부터 순차적으로 5개씩의 값을 뽑아낸 부분 배열을 체크해야겠죠.

      100개의 값을 갖는 data라는 이름의 배열 존재
      FOR i = 0, N_ELEMENTS(data)-1 DO BEGIN
      sub = data[i:i+4]
      ww = WHERE(sub EQ 0, count)
      count의 값을 바탕으로 파일 선택 또는 스킵 등의 여부 판단
      ENDFOR

      물론 그 5개의 값들에 대해서는 WHERE 함수를 사용해서 0이라는 값 또는 0이 아닌 값의 등장 횟수 등을 파악하여 각 경우에 맞는 분기별 작업을 설정해야 하겠죠. 언급하신 내용에서 파일을 선택하고 건너뛰는 기준이 약간 명확하지가 않아서 좀 헷갈리긴 하지만, 생각하신 기준에 맞는 판단 과정이 어디에든 들어가야 합니다. 하여간 정리해보면 배열의 인덱싱 그리고 원하는 조건의 만족 여부 판단 등의 작업을 모든 파일에 대하여 반복 수행하는 형태의 구조를 갖는 작업이 되어야 할 것으로 생각됩니다.

1 답변 글타래를 보이고 있습니다
'데이터 처리'에 답변달기
글쓴이 정보: