oplot 에서 배열오류

게시판 IDL Q&A oplot 에서 배열오류

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

      3차원 배열 A(i,j,k), C(i,j,k) 에 대해서
      for k = 0, 10 do begin
      if (k ge 6 and k le 9) then begin
      bb = where(A le 0.9 and C le 0.2 … 등등조건, count)
      B(bbb) = 1.
      endif
      endfor

      로 조건에 해당하는 배열에 1. , 나머지는 -999 를 넣었습니다.

      그리고
      plot, [0, 360], [0, 8], psym = 1, ,,, /nodata
      로 틀을 만들고

      for j = 0, n-1 do begin
      for k = 0, 13 do begin
      for i = 0, m-1 do begin
      aa = cc(i,k)
      if (B(i,j,k) eq 1. and aa ge 1.) then begin
      oplot, j, cc(i,k), psym=1
      endif
      endfor
      endfor
      endfor

      이렇게 해서 각 조건에 해당하는 점을 찍으려고 합니다.
      그런데
      OPLOT : Expression must be an array in this context : J
      라는 오류메세지가 뜹니다.

      이 부분에 대해서 oplot을 위와 같은 방법으로 수행할 수 있는지,
      where문에서 이상한 점은 없는지 궁금합니다..
      어떻게 해결하는 것이 좋을지 답변 부탁드립니다.
      조건에 해당하는 j와 cc(i,k)를 하나의 배열로 만들어서 oplot으로 하지 않고 한꺼번에 그려야할까요?

    • #2594 Reply
      Sangwoo
      회원

      OPLOT 명령은 인자를 무조건 배열의 형태로 받도록 되어 있습니다. 따라서 위의 OPLOT에 걸리는 인자들을 다음과 같이 배열의 형태로 적어주면, 원하시는 것처럼 단 하나의 포인트 단위로도 찍는 것이 가능합니다.

      OPLOT, [j], [cc[i, k]], PSYM=1

1 답변 글타래를 보이고 있습니다
'oplot 에서 배열오류'에 답변달기
글쓴이 정보: