MATLAB을 사용한 누적 합계

Ammar Ali 2022년1월20일
MATLAB을 사용한 누적 합계

이 튜토리얼에서는 MATLAB의 cumsum() 함수를 사용하여 벡터 또는 행렬의 누적 합을 찾는 방법에 대해 설명합니다.

MATLAB의 cumsum() 함수를 사용하여 벡터 또는 행렬의 누적 합 구하기

MATLAB의 내장 함수 cumsum()을 사용하여 벡터 또는 행렬의 누적 합을 찾을 수 있습니다.

입력이 벡터인 경우 cumsum() 함수는 벡터 요소의 누적 합계를 반환합니다. 입력이 행렬이면 cumsum() 함수는 행렬 열의 누적 합계를 반환합니다.

입력이 다차원 배열인 경우 cumsum() 함수는 첫 번째 비-싱글톤 차원의 누적 합계를 반환합니다. 예를 들어, 벡터 요소의 누적 합을 구해 보겠습니다.

아래 코드를 참조하십시오.

clc
v = 1:9
s = cumsum(v)

출력:

v =

     1     2     3     4     5     6     7     8     9


s =

     1     3     6    10    15    21    28    36    45

행렬의 누적 합을 구합시다. 아래 코드를 참조하십시오.

clc
v = [1:3; 1:3]
s = cumsum(v)

출력:

v =

     1     2     3
     1     2     3


s =

     1     2     3
     2     4     6

출력에서 변수 s는 각 열의 누적 합계를 포함합니다. cumsum() 함수의 두 번째 인수로 정수를 전달하여 열의 행 누적 합을 찾을 수도 있습니다.

예를 들어 위 행렬의 행들의 누적합을 구해보자. 아래 코드를 참조하십시오.

clc
v = [1:3; 1:3]
s = cumsum(v,2)

출력:

v =

     1     2     3
     1     2     3


s =

     1     3     6
     1     3     6

출력에서 변수 s에는 각 행의 누적 합계가 포함됩니다.

논리적 입력의 누적 합을 찾을 수도 있습니다. 이 경우 cumsum() 함수는 false 대신 0을 사용하고 1은 true이며 답은 데이터 유형 double입니다.

벡터나 행렬의 누적 합을 반대로 할 수도 있습니다. 기본적으로 cumsum() 함수는 벡터 또는 행렬의 왼쪽에서 시작하는 누적 합을 찾지만 내부에서 역방향 문자열을 사용하여 벡터 또는 행렬의 오른쪽에서 시작하는 누적 합을 찾을 수도 있습니다. cumsum() 함수.

예를 들어, 벡터의 우변에서 시작하여 누적 합을 구해 봅시다. 아래 코드를 참조하십시오.

clc
v = 1:3
s = cumsum(v,'reverse')

출력:

v =

     1     2     3


s =

     6     5     3

출력에서 누적 합계는 오른쪽에서 시작됩니다. 벡터 또는 행렬 내부에 NaN 값이 있고 누적 합계를 찾으면 cumsum() 함수는 첫 번째 NaN 값이 발생하는 즉시 출력 값을 NaN으로 바꿉니다.

NaN 값을 피하기 위해 cumsum() 함수의 인수로 omitnan 문자열을 사용하여 NaN 값을 무시하도록 함수에 지시할 수 있습니다. 예를 들어, 일부 NaN 값을 포함하는 벡터를 만들고 cumsum() 함수를 사용하여 누적 합계를 구해 보겠습니다.

아래 코드를 참조하십시오.

clc
v = [1 NaN 5 6 7 NaN NaN]
s = cumsum(v,'omitnan')

출력:

v =

     1   NaN     5     6     7   NaN   NaN


s =

     1     1     6    12    19    19    19

cumsum() 함수는 출력의 NaN 값을 무시하고 누적 합계를 계산했습니다.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - MATLAB Vector