데이터 처리문제

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

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

      안녕하세요 데이터 처리에 질문이 있어서 질문드립니다.
      제가 하고자하는 것은 불규칙한 숫자 배열 중에서 연속된 숫자가 나올 때,
      조건부 처리를 하고자 합니다.
      예를 들면[ 2 41 20 32 55 34 35 36 36 59 25 10 11 19 40 ]
      이런식의 15개의 숫자에서 연속 3개 이상 나오는 숫자를 제외한 나머지는 nan이나 0처리를 하고자 하는데
      (이 경우 [ 0 0 0 0 0 34 35 36 0 0 0 0 0 0 0]를 만들고자 합니다.)
      아직 실력이 부족해 의도한 대로 처리하기가 어렵습니다 ㅠ
      혹시 도움을 주실 수 있을까요

    • #5407 Reply
      Sangwoo
      회원

      이런 경우를 위한 내장함수는 따로 없을겁니다. 그냥 반복형 구문을 사용하여 배열 내 각 원소에 대한 작업을 해주는 방식으로 처리해야 할 것으로 보입니다. 아래 예제코드를 참조해보시기 바랍니다.

      data = [2, 41, 20, 32, 55, 34, 35, 36, 36, 59, 25, 10, 11, 19, 40]
      judge = INTARR(N_ELEMENTS(data))
      sn = 1
      value = data[0]
      indices = [0]
      FOR j = 1, N_ELEMENTS(data)-1 DO BEGIN
      IF data[j] EQ value+1 THEN BEGIN
      sn = sn+1
      indices = [indices, j]
      ENDIF ELSE BEGIN
      sn = 1
      indices = [j]
      ENDELSE
      IF sn GE 3 THEN judge[indices] = 1
      value = data[j]
      ENDFOR
      PRINT, judge
      result = judge*data
      PRINT, result

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