작성일:
 
2010. 4. 2. 15:54
 

배열


배열 생성 변수

INDGEN(3)  ->  배열 3개 생성 (정수) -> 0, 1, 2
FINDGEN 5 ->  배열 5개 생성 (실수) -> 0.0, 1.0, 2.0, 3.0, 4.0

ex)

myfloats=indgen(10)
mynewfloats=myfloats+5
print, mynewfloats

출력결과>       5       6       7       8       9      10      11      12      13      14

c와는 다른점

for(i=0, i<=10, i++)
   for(j=0, j<=10, j++)
        printf(i, n);
printf(j, n);

1. 복잡하게 구성할 필요가 없다
2. 무조건 [0]번 부터, 값 0부터 잡힌다.



a=findgen(100) - 1차원 배열
b=findgen(10,10) - 2차원 배열

a와 b의 형태 값은 같다. (단, 차원이 다름)



사칙연산

gt    >   greater than)
it    <   less than)
ge  >=  이상)
le  <=   이하)
eq  ==  같다
ne  =/=  같지 않다


where 함수

index=where(a ge 5)
index는 어떤 값이 들어가나? -> 주소값

ex)

a=[0,1,2,3,4,5]
index=where(a ne 5)
5와 같지 않는 것




과제1)

3,6,9 만들기, 47번째 해당하는 숫자 출력하시오

a=intgen(100)*3+3
print,a[46]


출력결과> 141


과제2)

1988년 부터 2016년까지 올림픽 날짜 출력하시오

a=indgen(100)*4+1988
print, a < 2016


출력결과> 1988, 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016,

배열의 값

최대값: max, 최소값: min, 평균값: mean, 중간값: median, 표준편차: stddev, 총합: total

a=[0,1,2,3,4,5,6,7,8,9]
print, mean(a)
print, min(a)
print, median(a)
print, stddev(a)
print, total(a)


출력결과> 4.5 / 0 / 9 / 4.5 / ~ / 45