이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

cumprod

누적 곱(Cumulative Product)

설명

예제

B = cumprod(A)는 크기가 1이 아닌 A의 첫 번째 배열 차원의 시작에서부터 계산하여 A의 누적 곱을 반환합니다.

  • A가 벡터인 경우 cumprod(A)는 배열(A) 요소의 누적 곱을 계산하여 벡터로 반환합니다.

  • A가 행렬인 경우 cumprod(A)A의 각 열별로 누적 곱을 계산하여 행렬로 반환합니다.

  • A가 다차원 배열인 경우 cumprod(A)첫 번째 비한원소(Nonsingleton) 차원을 따라 동작을 수행합니다.

예제

B = cumprod(A,dim)은 차원 dim 정의에 따라 누적 곱을 계산하여 반환합니다. 예를 들어, A가 행렬인 경우 cumprod(A,2)는 각 행의 누적 곱을 반환합니다.

예제

B = cumprod(___,direction)은 위에 열거된 구문 중 하나를 사용하고 선택적으로 방향을 지정합니다. A는 반드시 지정해야 하며, dim을 선택적으로 지정할 수 있습니다. 예를 들어, cumprod(A,2,'reverse')는 두 번째 차원의 끝에서 시작 방향으로 작업하여 A의 행 내의 누적 곱을 반환합니다.

예제

B = cumprod(___,nanflag)는 위에 열거된 구문의 계산에 NaN 값을 포함시킬지 또는 생략할지 여부를 지정합니다. cumprod(A,'includenan')은 계산에 NaN 값을 포함시키는 반면 cumprod(A,'omitnan')은 NaN 값을 무시합니다.

예제

모두 축소

1부터 5까지 정수의 누적 곱을 구합니다. 요소 B(2)A(1)A(2)의 곱이고, B(5)는 요소 A(1)부터 A(5)까지의 곱입니다.

A = 1:5;
B = cumprod(A)
B = 1×5

     1     2     6    24   120

요소가 선형 인덱스에 대응하는 3x3 행렬을 정의합니다.

A = [1 4 7; 2 5 8; 3 6 9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

A의 열 누적 곱을 구합니다. 요소 B(5)A(4)A(5)의 곱이고, B(9)A(7), A(8)A(9)의 곱입니다.

B = cumprod(A)
B = 3×3

     1     4     7
     2    20    56
     6   120   504

요소가 선형 인덱스에 대응하는 2x3 행렬을 정의합니다.

A = [1 3 5; 2 4 6]
A = 2×3

     1     3     5
     2     4     6

A의 행 누적 곱을 구합니다. 요소 B(3)A(1)A(3)의 곱이고, B(5)A(1), A(3)A(5)의 곱입니다.

B = cumprod(A,2)
B = 2×3

     1     3    15
     2     8    48

논리값으로 구성된 배열을 만듭니다.

A = [true false true; true true false]
A = 2x3 logical array

   1   0   1
   1   1   0

A의 행 누적 곱을 구합니다.

B = cumprod(A,2)
B = 2×3

     1     0     0
     1     1     0

출력값은 double형입니다.

class(B)
ans = 
'double'

1과 10 사이의 임의의 정수로 구성된 3x3 행렬을 만듭니다.

rng default;
A = randi([1,10],3)
A = 3×3

     9    10     3
    10     7     6
     2     1    10

열을 따라 누적 곱을 계산합니다. 'reverse' 옵션을 지정하여 각 열의 맨 아래에서 맨 위 방향으로 작업하도록 합니다. 결과는 A와 크기가 동일합니다.

B = cumprod(A,'reverse')
B = 3×3

   180    70   180
    20     7    60
     2     1    10

NaN 값을 포함하는 벡터를 만든 다음 누적 곱을 계산합니다. 기본적으로 cumprodNaN 값을 포함합니다. 계산에 NaN 값을 포함시키면 A에서 첫 번째 NaN 값이 발견되는 즉시 누적 곱은 NaN이 됩니다.

A = [1 3 NaN 2 4 NaN];
B = cumprod(A)
B = 1×6

     1     3   NaN   NaN   NaN   NaN

'omitnan' 옵션을 사용하여 누적 곱 계산에서 NaN 값을 무시합니다.

B = cumprod(A,'omitnan')
B = 1×6

     1     3     3     6    24    24

입력 인수

모두 축소

입력 배열로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
복소수 지원 여부:

함수 동작이 수행될 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 첫 번째 배열 차원이 됩니다.

2차원 입력 배열 A가 있다고 가정하겠습니다.

  • cumprod(A,1)A의 열에 있는 연속된 요소에 대해 동작을 수행하고 각 열의 누적 곱을 반환합니다.

  • cumprod(A,2)A의 행에 있는 연속된 요소에 대해 동작을 수행하고 각 행의 누적 곱을 반환합니다.

dimndims(A)보다 큰 경우 cumprodA를 반환합니다.

누적 방향으로, 'forward'(디폴트 값) 또는 'reverse'로 지정됩니다.

  • 'forward'는 활성 차원의 1에서 end 방향으로 동작합니다.

  • 'reverse'는 활성 차원의 end에서 1 방향으로 동작합니다.

NaN 조건으로, 다음 값 중 하나로 지정됩니다.

  • 'includenan' — 각 곱을 계산할 때 입력값의 NaN 값을 포함하며 출력값에 NaN 값을 반환합니다.

  • 'omitnan' — 입력값의 NaN 값을 무시합니다. NaN 값을 포함하는 요소의 곱은 모든 비 NaN 요소의 곱입니다. 모든 요소가 NaN인 경우 cumprod는 1을 반환합니다.

출력 인수

모두 축소

누적 곱 배열로, 입력 배열 A와 크기가 같은 벡터, 행렬, 다차원 배열 중 하나로 반환됩니다.

Alogical형이고 Bdouble형인 경우를 제외하면 B의 클래스는 A의 클래스와 동일합니다.

세부 정보

모두 축소

첫 번째 비한원소(Nonsingleton) 차원

첫 번째 비한원소(Nonsingleton) 차원은 배열에서 크기가 1이 아닌 첫 번째 차원입니다.

예를 들면 다음과 같습니다.

  • X가 1xn 행 벡터인 경우 두 번째 차원은 X의 첫 번째 비한원소(Nonsingleton) 차원입니다.

  • X가 1x0xn 빈 배열인 경우 두 번째 차원은 X의 첫 번째 비한원소(Nonsingleton) 차원입니다.

  • X가 1x1x3 배열인 경우 세 번째 차원은 X의 첫 번째 비한원소(Nonsingleton) 차원입니다.

  • 'reverse' 옵션은 MATLAB®의 많은 누적 함수에서 지원됩니다. 이 옵션을 사용하면 입력 배열을 뒤집거나 반사하지 않고도 방향 계산을 빠르게 수행할 수 있습니다.

확장 기능

참고 항목

| | | | |

R2006a 이전에 개발됨