원하는 데이터 값 찾기

게시판 IDL Q&A 원하는 데이터 값 찾기

2 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #1357 Reply
      룰루
      회원

      안녕하세요.

      오랜만에 들러서 질문하나만 드릴께요.ㅎ

      http://www.spweather.com/idluser/bbs/view.php?id=idlqa&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=찾기&select_arrange=headnum&desc=asc&no=1795

      제목 그대로 원하는 데이터 값을 찾고 싶은데 위에 링크는 원하는 X축에 대응하는 Y축의 값을

      찾는건데 저는 반대로 원하는 Y축에 대응하는 X축 값을 알고 싶습니다. 물론 X, Y 둘다 interpolation

      해야 하구요. 링크에 있는 사진에서 파란 화살표를 반대로 하면 쉽게 이해 될 것 같습니다. 여기저기

      찾아보다 도저히 안되서 여기 글을 올립니다.ㅠㅠ

      • 이 게시글은 룰루에 의해 10 years, 3 months 전에 수정됐습니다.
    • #1380 Reply
      Sangwoo
      회원

      근사되는 함수의 형태가 증가 혹은 감소만 하는 형태(monotonous)인 경우라면, INTERPOL 함수에서 x벡터와 y벡터를 서로 바꿔줌으로써 값을 찾는게 가능할겁니다. 하지만 지금의 예처럼 같은 y값에 대하여 x값이 두 개가 나올 수 있는 형태라면 이 방법이 안먹힐 것으로 생각됩니다. 링크해주신 내용을 기준으로 말씀드리면, index라고 명명된 배열, 즉 내가 y값을 찾고 싶은 x값들로 구성된 배열을 가급적이면 촘촘하게 만듭니다. 아마도 -100에서 +100까지 1 또는 0.1과 같은 간격을 갖는 배열을 생성해서 index 자리에 사용합니다. 그러면 result라는 배열은 이 index 배열과 같은 갯수의 y값들을 담은 배열로 얻어지게 됩니다. 이 result 배열에 대해서 WHERE와 같은 함수를 사용하여, 내가 원하는 값에 해당되는 위치가 어디인지를 확인하고 그 위치 번호를 사용해서 index 배열의 해당 값을 찾아내는 방식으로 작업을 하면 어떨까 합니다.

    • #1421 Reply
      룰루
      회원

      일단 저는 Sangwoo님과 비슷하게 linear interpolation하여 간격비를 이용해 산수로 했었는데,

      배열로도 한번 해봐야겠네요. 그리고 tlseorb0111님이 올려주신 예제로도 한번 해보고 비교한번

      해봐야 겠네요.ㅎㅎ

      두분 답변 감사드립니다 .^^:

    • #1385 Reply
      tlseorb0111
      회원

      contour 프로시저의 path_xy 키워드를 활용하면 될것 같습니다.

      example)

      x = DINDGEN(20)
      y = RANDOMU(seed, 20, /double)

      PLOT, x, y

      dum = REBIN(y, N_ELEMENTS(y), 2) ; contour프로시저에 넣기위서서
      lev = 0.5 ; 원하는 값
      CONTOUR, dum, x, [0, 1], level=lev, path_xy=x_point, /path_data_coord, closed=0, /path_double
      ;path_xy키워드를 통해서 level에 해당되는 x촤표를 얻을 수 있습니다.
      con = WHERE(x_point[1,*] EQ 0)

      x_point = REFORM(x_point[0, con]) ;
      newy = INTERPOL(y, x, x_point)
      PRINT, newy
      OPLOT, x_point, newy, psym=4, symsize=1.5

      제 경우에는 별 문제가 없었는데, 위 방법이 여러 상황에 잘 적용되는 것인지는 모르겠네요

      • 이 답변은 tlseorb0111에 의해 10 years, 3 months 전에 수정됐습니다.
2 답변 글타래를 보이고 있습니다
'원하는 데이터 값 찾기'에 답변달기
글쓴이 정보: