SMALL

IDL/배열 생성 및 처리 22

배열의 자료형과 값의 대입에 관한 유의사항

IDL에서 단일값 변수의 경우는 자료형이 동적으로 정의됩니다. 즉 대입되는 값에 따라서 자료형이 정의됩니다. 예를 들어 a라는 변수를 다음과 같이 정의하면 변수 a는 정수형 변수로 정의됩니다. IDL> a = 7 IDL> HELP, a A INT = 7 이랬다가 바로 a에 실수형 값을 대입하면 바로 실수형 변수로 바뀝니다. IDL> a = 5.6 IDL> HELP, a A FLOAT = 5.60000 이와 같이 변수를 처음 사용할 때 대입되는 값에 따라서 변수의 자료형이 동적으로 유연하게 정의됩니다. 그런데 배열의 경우는 어떨까요? 배열의 경우는 조금 다릅니다. 설명을 위하여 먼저 다음과 같이 정수형 값들로 구성된 배열 a를 정의합니다. IDL> a = [6, 4, 7] IDL> HELP, a A INT..

2차원 배열의 인덱스 체계의 이해 및 활용 [3]

* 지난 회차 게시물의 내용에서 바로 이어집니다. 지난 회차 게시물들에서 사용했던 예제 데이터는 5x4의 구조를 갖는 2차원 배열이었습니다. 이 데이터를 생성하고 값들을 출력하는 내용을 다시 적어봅니다. arr = FIX(RANDOMU(-1, 5, 4)*100) HELP, arr PRINT, arr ARR INT = Array[5, 4] 9 11 91 56 78 52 78 77 1 28 96 50 59 69 14 69 90 17 55 65 이와 같이 배열 내의 총 20개의 값들을 출력하여 볼 수 있습니다. 오늘은 이 2차원 배열을 이미지의 형태로 표출해봅시다. 2차원 배열을 이미지의 형태로 표출하는 것은 우리가 원래 자주 하는 일입니다. 다음과 같이 IMAGE 함수를 사용하면 됩니다. win = WIND..

2차원 배열의 인덱스 체계의 이해 및 활용 [2]

* 지난 회차 게시물의 내용에서 바로 이어집니다. 예를 들어서 배열 arr 내에서 80보다 큰 값들을 탐색해야 하는 경우를 가정해봅시다. 이러한 작업을 위해서는 다음과 같이 WHERE 함수를 사용하면 됩니다. ww = WHERE(arr GT 80, count) PRINT, count 3 여기서는 변수 count를 통하여 얻은 값을 출력하도록 했는데, 이 값의 의미는 발생건수입니다. 즉 배열 arr 내에서 80보다 큰 값이 발생한 건수가 3개라는 뜻입니다. 그러면 그 3개의 값들이 어떤 값들인지 확인해보려면 다음과 같이 WHERE로 얻은 결과로 원래 배열 arr을 인덱싱하면 됩니다. PRINT, arr[ww] 91 96 90 그러면 해당 값들이 모두 출력됩니다. 즉 91, 96, 90이라는 것을 확인할 수..

2차원 배열의 인덱스 체계의 이해 및 활용 [1]

오늘은 IDL에서 정의되는 2차원 배열의 인덱스 체계에 관하여 알아보고자 합니다. 구체적으로는 IDL에서 사용되는 2차원 배열의 인덱싱 방식에 대한 기본적인 방식에 대하여 관련 예제들과 함께 살펴보고, 이와 연관되는 주제로서 WHERE, ARRAY_INDICES 등의 함수에 대한 얘기도 이어서 해볼 예정입니다. 어떻게 보면 보면 뻔한 얘기가 될 수도 있지만, 사실 유저 입장에서는 다소 혼동될만한 부분도 있기 때문에 이번 기회에 한번 다뤄보도록 하겠습니다. 아마도 2~3회 정도로 나눠서 진행하게 될 것 같습니다. 그러면 먼저 예제로 사용할 2차원 배열을 정의해봅시다. 다음과 같이 RANDOMU 함수를 이용하여 5x4의 구조를 갖는 2차원 배열을 정의하고 관련 정보들을 출력합니다. arr = FIX(RAND..

IDL에서 배열의 생성에 관한 각종 팁들 정리

어떤 프로그래밍 언어든지 다 마찬가지이겠지만 IDL에서도 배열의 생성 및 처리는 모든 작업의 기본입니다. 이와 관련하여 IDL 도움말, 관련 서적들 또는 제 블로그에 있는 관련 게시물들 등 여러가지 참고 자료들이 있습니다. 저도 모처럼 찾아보니까 이 블로그에서도 제가 여러 차례 관련 게시물들을 올렸더군요. 그래서 오늘 또 이런 주제로 게시물을 올리는 것이 다소 재탕이 될 위험성이 없지는 않지만, 그래도 기존에 제가 다루었던 내용들과 새로운 내용들을 적절히 섞어서 정리를 해보았습니다. 최근에 (주)에스이랩에서 발송했던 "IDL의 배열 생성 관련 팁"이라는 제목의 한장강의가 있었는데, 여기에 지면 관계상 다 실을 수 없었던 추가적이고 보충적인 내용들을 이 게시물에서 본격적으로 정리해보았습니다. < 2차원 및..

728x90