Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

movsum

설명

예제

M = movsum(A,k)는 로컬 k점 합으로 구성된 배열을 반환합니다. 여기서 각 합은 A의 인접 요소들이 포함된 길이 k의 슬라이딩 윈도우에서 계산됩니다. k가 홀수면 윈도우의 중심은 현재 위치의 요소가 됩니다. k가 짝수면 윈도우의 중심은 현재 요소 및 이전 요소가 됩니다. 윈도우를 다 채우기에 요소가 부족할 때는 윈도우 크기가 끝점에서 자동으로 잘립니다. 윈도우가 잘렸을 때는 윈도우를 채우는 요소들의 합을 구합니다. MA와 크기가 같습니다.

  • A가 벡터인 경우 movsum은 벡터의 길이를 따라 동작합니다.

  • A가 다차원 배열인 경우 movsum은 크기가 1이 아닌 첫 번째 배열 차원에 따라 동작합니다.

예제

M = movsum(A,[kb kf])는 현재 위치에 있는 요소와 그 위치 뒤로 kb개 요소, 그 위치 앞으로 kf개 요소를 포함하는 길이 kb+kf+1의 윈도우에서 합을 계산합니다.

예제

M = movsum(___,dim)은 위에 열거된 구문을 사용하여 차원 dim을 따라 슬라이딩 합의 배열을 반환합니다. 예를 들어, A가 행렬인 경우, movsum(A,k,2)A의 열을 따라 각 행에 대한 k요소 슬라이딩 합을 계산합니다.

예제

M = movsum(___,nanflag)는 위에 열거된 구문의 계산에 NaN 값을 포함시킬지 또는 생략할지 여부를 지정합니다. movsum(A,k,'includenan')은 계산에 모든 NaN 값을 포함시키는 반면, movsum(A,k,'omitnan')은 NaN 값을 무시하고 더 적은 수의 점을 대상으로 합을 계산합니다.

예제

M = movsum(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 합에 대한 추가 파라미터를 지정합니다. 예를 들어, x가 시간 벡터인 경우 movsum(A,k,'SamplePoints',x)x의 시간을 기준으로 A의 이동 합을 계산합니다.

예제

모두 축소

행 벡터의 3점 중심 이동합을 계산합니다. 끝점에 있는 윈도우의 요소가 3개 미만일 때는 남은 요소들의 합을 구합니다.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movsum(A,3)
M = 1×10

    12    18    13     3    -6    -6    -1     6    12     9

행 벡터의 3점 후행 이동합을 계산합니다. 끝점에 있는 윈도우의 요소가 3개 미만일 때는 movsum이 남은 요소들의 합을 취합니다.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movsum(A,[2 0])
M = 1×10

     4    12    18    13     3    -6    -6    -1     6    12

행렬의 각 행에 대한 3점 중심 이동합을 계산합니다. 윈도우가 첫 번째 행에서 시작하고, 행 끝까지 수평으로 슬라이딩한 후, 두 번째 행으로 이동합니다. 차원 인수는 2이고, 이것은 A의 열 방향으로 윈도우를 슬라이딩합니다.

A = [4 8 6; -1 -2 -3; -1 3 4]
A = 3×3

     4     8     6
    -1    -2    -3
    -1     3     4

M = movsum(A,3,2)
M = 3×3

    12    18    14
    -3    -6    -5
     2     6     7

NaN 요소 2개를 포함하는 행 벡터의 3점 중심 이동합을 계산합니다.

A = [4 8 NaN -1 -2 -3 NaN 3 4 5];
M = movsum(A,3)
M = 1×10

    12   NaN   NaN   NaN    -6   NaN   NaN   NaN    12     9

합을 다시 계산하되, NaN 값을 생략합니다. movsumNaN 요소를 무시할 경우 윈도우 내에 남아 있는 요소들의 합을 구하게 됩니다.

M = movsum(A,3,'omitnan')
M = 1×10

    12    12     7    -3    -6    -5     0     7    12     9

시간 벡터 t에 따라 A에 있는 데이터의 3시간 중심 이동합을 계산합니다.

A = [4 8 6 -1 -2 -3];
k = hours(3);
t = datetime(16,1,1,0,0,0) + hours(0:5)
t = 1x6 datetime
Columns 1 through 3

   01-Jan-0016 00:00:00   01-Jan-0016 01:00:00   01-Jan-0016 02:00:00

Columns 4 through 6

   01-Jan-0016 03:00:00   01-Jan-0016 04:00:00   01-Jan-0016 05:00:00

M = movsum(A,k,'SamplePoints',t)
M = 1×6

    12    18    13     3    -6    -5

행 벡터의 3점 중심 이동합을 계산하되, 3개 미만의 점을 사용하는 모든 계산을 출력값에서 무시합니다. 즉, 요소를 3개 가진 완전한 윈도우에서 계산된 합만 반환하고, 끝점에서의 계산은 무시합니다.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movsum(A,3,'Endpoints','discard')
M = 1×8

    18    13     3    -6    -6    -1     6    12

입력 인수

모두 축소

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

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

윈도우 길이로, 숫자형 또는 duration형 스칼라로 지정됩니다. k가 양의 정수 스칼라일 때 중심 위치에서의 합은 현재 위치의 요소와 주위의 요소를 포함합니다. 예를 들어, 길이 3의 윈도우로 3점 합을 정의할 때 벡터 A에 대한 계산은 다음과 같습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

방향 윈도우 길이로, 2개 요소를 포함하는 숫자형 또는 duration형 행 벡터로 지정됩니다. kbkf가 양의 정수 스칼라일 때 계산은 kb+kf+1개 요소에 대해 이루어집니다. 계산은 현재 위치의 요소, 현재 위치 앞의 kb개 요소, 그리고 현재 위치 뒤의 kf개 요소를 포함합니다. 예를 들어, 방향 윈도우 [2 1]에 의해 4점 합이 정의되면 벡터 A에 대한 계산은 다음과 같습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

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

차원 dimmovsum이 계산되는 차원 즉, 지정한 윈도우가 슬라이딩하는 방향을 나타냅니다.

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

  • dim = 1인 경우, movsum(A,k,1)은 첫 번째 열부터 시작해 각 행에 대해 수직 방향으로 슬라이딩합니다. 합은 한 번에 k개 요소를 대상으로 계산됩니다. 그런 다음 두 번째 열로 이동하고 계산을 반복합니다. 이 과정은 모든 열을 거칠 때까지 계속됩니다.

  • dim = 2인 경우, movsum(A,k,2)는 첫 번째 행부터 시작해 각 열에 대해 수평 방향으로 슬라이딩합니다. 합은 한 번에 k개 요소를 대상으로 계산됩니다. 그런 다음 두 번째 행으로 이동하고 계산을 반복합니다. 이 과정은 모든 행을 거칠 때까지 계속됩니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

  • 'includenan' — 합을 계산할 때 NaN 값을 포함하며, NaN 결과가 생성됩니다.

  • 'omitnan' — 입력값의 모든 NaN 값을 무시합니다. 윈도우가 NaN 값만 포함하는 경우, movsum은 0을 반환합니다.

이름-값 인수

예: M = movsum(A,k,'Endpoints','fill')

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

선행 윈도우와 후행 윈도우를 처리하는 방법으로, 'Endpoints'와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

'Endpoints'설명
'shrink'입력값의 끝점 근처의 윈도우 크기를 실제로 존재하는 요소만 포함하도록 축소합니다.
'discard'윈도우가 실제로 존재하는 요소들과 완전히 겹치지 않을 때는 어떤 합도 출력하지 않습니다.
'fill'존재하지 않는 요소를 NaN으로 대체합니다.
숫자형 스칼라 또는 논리형 스칼라존재하지 않는 요소를 지정한 숫자형 또는 논리형 값으로 대체합니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

합을 계산할 샘플 점으로, 'SamplePoints'와 함께 벡터가 쉼표로 구분되어 지정됩니다. 샘플 점은 A에 있는 데이터의 위치를 나타냅니다. 샘플 점은 균일하게 샘플링할 필요가 없습니다. 기본적으로, 샘플 점 벡터는 [1 2 3 ... ]입니다.

이동 윈도우는 샘플 점을 기준으로 하여 정의되며, 이 샘플 점은 정렬되고 고유한 요소를 가져야 합니다. 예를 들어, t가 입력 데이터에 해당하는 시간 벡터인 경우 movsum(rand(1,10),3,'SamplePoints',t)에는 t(i)-1.5 ~ t(i)+1.5 범위의 시간 구간을 나타내는 윈도우가 있습니다.

샘플 점 벡터의 데이터형이 datetime형 또는 duration형인 경우 이동 윈도우 길이는 duration형이어야 합니다.

샘플 점의 간격이 균일하지 않을 때 'Endpoints' 이름-값 쌍을 지정하면 Endpoints의 값은 'shrink'입니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

확장 기능

버전 내역

R2016a에 개발됨

참고 항목

| | | | |