Main Content

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

diff

차분과 근사 도함수

설명

예제

Y = diff(X)는 크기가 1이 아닌 첫 번째 배열 차원을 따라 X의 인접 요소 사이의 차분을 계산합니다.

  • X가 길이가 m인 벡터인 경우 Y = diff(X)는 길이가 m-1인 벡터를 반환합니다. Y의 요소는 X의 인접 요소 간의 차분입니다.

    Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]

  • X가 비어 있지 않으며 벡터가 아닌 pxm 행렬인 경우 Y = diff(X)는 크기가 (p-1)xm인 행렬을 반환합니다. 이 행렬의 요소는 X의 행 간의 차분입니다.

    Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
  • X가 0x0 빈 행렬인 경우 Y = diff(X)는 0x0 빈 행렬을 반환합니다.

예제

Y = diff(X,n)diff(X) 연산자를 재귀적으로 n회 적용하여 n번째 차분을 계산합니다. 실제로 이는 diff(X,2)diff(diff(X))와 동일하다는 것을 의미합니다.

예제

Y = diff(X,n,dim)dim으로 지정된 차원을 따라 계산된 n번째 차분입니다. dim 입력값은 양의 정수 스칼라입니다.

예제

모두 축소

벡터를 만든 다음, 요소 간의 차분을 계산합니다.

X = [1 1 2 3 5 8 13 21];
Y = diff(X)
Y = 1×7

     0     1     1     2     3     5     8

참고로, Y의 요소는 X보다 한 개 적습니다.

3x3 행렬을 생성한 다음, 행 간의 첫 번째 차분을 계산합니다.

X = [1 1 1; 5 5 5; 25 25 25];
Y = diff(X)
Y = 2×3

     4     4     4
    20    20    20

Y는 2x3 행렬입니다.

벡터를 생성한 다음, 요소 간의 2차 차분을 계산합니다.

X = [0 5 15 30 50 75 105];
Y = diff(X,2)
Y = 1×5

     5     5     5     5     5

3x3 행렬을 생성한 다음, 열 간의 1차 차분을 계산합니다.

X = [1 3 5;7 11 13;17 19 23];
Y = diff(X,1,2)
Y = 3×2

     2     2
     4     2
     2     4

Y는 3x2 행렬입니다.

diff 함수를 구문 Y = diff(f)/h와 같이 사용하여 편도함수의 근삿값을 계산합니다. 여기서 f는 어떤 정의역 X에 대해 계산되는 함수 값의 벡터이고 h는 적절한 스텝 크기입니다.

예를 들어, x에 대한 sin(x)의 1계 도함수는 cos(x)이고 x에 대한 2계 도함수는 -sin(x)입니다. diff를 사용하여 해당 도함수의 근삿값을 계산할 수 있습니다.

h = 0.001;       % step size
X = -pi:h:pi;    % domain
f = sin(X);      % range
Y = diff(f)/h;   % first derivative
Z = diff(Y)/h;   % second derivative
plot(X(:,1:length(Y)),Y,'r',X,f,'b', X(:,1:length(Z)),Z,'k')

이 플롯에서 파란색 선은 원본 함수 sin에 대응합니다. 빨간색 선은 계산된 1계 도함수 cos에 대응하고 검은색 선은 계산된 2계 도함수 -sin에 대응합니다.

균일한 간격의 datetime형 값 시퀀스를 만들고 값 사이의 시간 차분을 구합니다.

t1 = datetime('now');
t2 = t1 + minutes(5);
t = t1:minutes(1.5):t2
t = 1x4 datetime
Columns 1 through 3

   31-Jan-2020 22:40:53   31-Jan-2020 22:42:23   31-Jan-2020 22:43:53

Column 4

   31-Jan-2020 22:45:23

dt = diff(t)
dt = 1x3 duration
   00:01:30   00:01:30   00:01:30

diffduration형 배열을 반환합니다.

입력 인수

모두 축소

입력 배열로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. X는 숫자형 배열, 논리형 배열, datetime형 배열, duration형 배열 중 하나일 수 있습니다.

복소수 지원 여부:

차분의 차수로, 양의 정수 스칼라 또는 []로 지정됩니다. n의 디폴트 값은 1입니다.

dim이 1(size(X,dim) = 1)차원으로 감소할 수 있도록 n을 충분히 크게 지정할 수 있습니다. 이 경우 diff는 크기가 1이 아닌 다음 배열 차원을 따라 계산을 계속합니다. 이 과정은 0x0 빈 행렬이 반환될 때까지 계속됩니다.

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

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

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

  • diff(A,1,1)A의 열에 있는 연속된 요소에 대해 동작을 수행하고 (p-1)xm 차분 행렬을 반환합니다.

  • diff(A,1,2)A의 행에 있는 연속된 요소에 대해 동작을 수행하고 px(m-1) 차분 행렬을 반환합니다.

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

출력 인수

모두 축소

차분 배열로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 반환됩니다. X가 비어 있지 않은 배열인 경우 diff가 수행된 X의 차원 크기는 출력값에서 n만큼 줄어듭니다.

확장 기능

참고 항목

| | |

R2006a 이전에 개발됨