CSHIFT — 배열 요소의 원형 이동
CSHIFT — 배열 요소의 원형 이동
배열의 요소들을 한쪽 끝에서 밀어내고 반대쪽 끝으로 다시 집어넣는, '원형(circular)' 이동이 필요할 때가 있어요. CSHIFT는 배열 요소들을 지정한 차원을 따라 원형으로 이동시키는 변환 함수예요.
본문
RESULT = CSHIFT(ARRAY, SHIFT [, DIM])
설명(Description)
CSHIFT(ARRAY, SHIFT [, DIM])은 DIM 차원을 따라 ARRAY의 요소를 원형으로 이동시켜요. DIM이 생략되면 1로 간주돼요. DIM은 1 ≤ DIM ≤ n 범위의 INTEGER 스칼라인데, 여기서 n은 ARRAY의 랭크(rank)예요. ARRAY의 랭크가 1이면 모든 요소를 SHIFT만큼 이동해요. 랭크가 1보다 크면 주어진 차원을 따른 모든 완전한 1차원 구간(section)이 이동돼요. 각 1차원 구간의 한쪽 끝으로 밀려난 요소는 반대쪽 끝에서 다시 들어와요.
분류(Class)
변환 함수(Transformational function)
인자(Arguments)
ARRAY— 모든 타입의 배열이어야 해요.SHIFT— 타입이INTEGER여야 해요.DIM— 타입이INTEGER여야 해요.
참고(Notes)
ARRAY는 UNSIGNED일 수도 있어요.
반환값(Return value)
ARRAY 인자와 같은 타입·랭크의 배열을 반환해요.
예제
program test_cshift
integer, dimension(3,3) :: a
a = reshape( (/ 1, 2, 3, 4, 5, 6, 7, 8, 9 /), (/ 3, 3 /))
print '(3i3)', a(1,:)
print '(3i3)', a(2,:)
print '(3i3)', a(3,:)
a = cshift(a, SHIFT=(/1, 2, -1/), DIM=2)
print *
print '(3i3)', a(1,:)
print '(3i3)', a(2,:)
print '(3i3)', a(3,:)
end program test_cshift
2차원 배열에서 DIM=2(열 방향)를 따라 각 행을 다른 크기만큼 원형 이동한 결과를 확인해 볼 수 있어요.
표준(Standard)
Fortran 90 이상