평균 취할 때 궁금합니다

게시판 IDL Q&A 평균 취할 때 궁금합니다

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

      a=[342,2521,431,663,762,1535,2521,….]
      b=[3245,15,232,66,27,84,15235,62627,…]
      c=[….]
      d=[….]
      e=[….]

      이렇게 데이터가 있다면

      f = (a+b+c+d+e)/5.0을 해주면 각 열끼리 더해지고 그게 5로 나눠지게 되어
      f=[1412,253524,1231241,…..]이런식으로 나오게 되는데요!

      이걸 mean함수를 통해 어떻게 하나요?

    • #5239 Reply
      mwkim
      회원

      안녕하세요, 크게는 두 개로 나누어볼 수 있을 것 같은데,

      1. 배열을 하나의 자료로 함칠 것
      2. 합친 자료를 특정 차원에 대해서 평균할 것

      입니다.

      ——————————-

      이 중 1번을 할 때, 2번을 위해서 기존 차원이 아니라 새로운 차원을 더해서 합쳐야 합니다.
      (여기서는 1차원 자료를 합쳐서 2차원 자료로 병합)

      간단하게는 아래와 같이 하면 됩니다.

      data = [[a],[b],[c],[d],[e]]

      다만 해당 방법은 a,b,c,d,e가 모두 같은 크기를 같아야하고

      크기가 다른 경우에는 합칠 배열을 먼저 만들어두고 인덱스를 통해 직접 넣는게 좋을 것 같습니다.

      ——————————-

      위와 같이 평균을 하는 것은 합쳐진 자료에 대해 새로 생긴 2차원에 대해 평균을 취하면 됩니다.

      f = MEAN(data,DIMENSION=2)

      위 DIMENSION 옵션에 대한 설명은 IDL 도움말에서 MEAN을 찾아보시면 설명된 것을 통해 보다 자세히 알 수 있을 겁니다.

      ——————————-

      근데 알려드린 것처럼 안하고 위에 예시로 보여준 것처럼 해도

      결과는 동일하고 코드에서도 별로 차이가 없을 것 같은데 굳이 MEAN 함수를 사용하시려는 이유가 있나요?

      • #5241 Reply
        jay
        회원

        감사합니다!
        한 배열로 모아 mean을 했습니다
        그 data가 여러개여서 일일이 avg를 취할 수 없을 경우가 있어서요!

    • #5240 Reply
      Sangwoo
      회원

      MEAN 함수에 투입되는 인자는 평균할 대상값들이 모두 모여있는 하나의 배열이어야 합니다. 질문하신 내용을 보면, 실제로 평균할 대상이 되는 값들은 개별 배열마다 하나씩 고립된 채 존재하는 상태입니다. 배열 a의 값들을 모두 평균할 경우라면야 당연히 MEAN(a)로 사용하면 됩니다. 하지만 질문 내용과 같이 a, b, c, d, e에서 각각 하나씩만 뽑아내서 모은 값들에 대한 평균을 구하려고 한다면, 결국 이 값들이 어떤 형태로든 하나로 모여있는 배열이 필요하다는 것입니다. 따라서 대상이 될 값들이 하나의 배열로 모인 형태가 되어야만(바로 위의 답변에서 data와 같이) MEAN 함수에서 사용이 가능하다는 점을 염두에 둘 필요가 있습니다.

      • #5242 Reply
        jay
        회원

        감사합니다 :)!!

2 답변 글타래를 보이고 있습니다
'평균 취할 때 궁금합니다'에 답변달기
글쓴이 정보: