Main Content

detrend

다항식 추세 제거

설명

예제

D = detrend(A)A의 데이터에서 최적 피팅 직선을 제거하고 남은 데이터를 반환합니다.

  • A가 벡터이면 detrendA의 요소에서 추세를 뺍니다.

  • A가 행렬이면 detrend는 열마다 별개로 연산을 수행하여 A의 대응하는 열에서 각 추세를 뺍니다.

  • A가 다차원 배열이면 detrend는 모든 차원에서 열 방향 연산을 수행하여 A의 대응하는 열에서 각 추세를 뺍니다.

  • Asingle형 또는 double형의 숫자형 변수를 포함한 테이블 또는 타임테이블인 경우 detrendA의 각 변수에 대해 개별적으로 연산을 수행하여 A에 대응하는 값에서 각 추세를 뺍니다.

예제

D = detrend(A,n)n차 다항식 추세를 제거합니다. 예를 들어, n = 0이면 detrendA에서 평균값을 제거합니다. n = 1이면 detrend는 선형 추세를 제거합니다. 이는 위 구문과 동일합니다. n = 2이면 detrend는 2차 추세를 제거합니다.

예제

D = detrend(A,n,bp)는 벡터 bp에 지정된 절점으로 정의된 세그먼트를 사용하여 연속 조각별 추세를 제거합니다.

D = detrend(___,nanflag)는 위에 열거된 구문에서 NaN 값이 처리되는 방식을 지정합니다. 예를 들어, detrend(A,"omitnan")은 추세를 계산하기 전에 NaN을 제거하고, detrend(A,"includenan")은 NaN을 포함합니다(디폴트 값).

예제

D = detrend(___,Name,Value)는 하나 이상의 이름-값 인수를 사용하여 추가 파라미터를 지정합니다. 예를 들어, detrend(A,1,bp,"Continuous",false)는 피팅된 추세가 불연속을 가질 수 있음을 지정합니다.

예제

모두 축소

데이터로 구성된 벡터를 만들고 연속 선형 추세를 제거합니다. 원래 데이터, 추세가 제거된 데이터 및 선형 추세를 플로팅합니다.

t = 0:20;
A = 3*sin(t) + t;
D = detrend(A);

plot(t,A)
hold on
plot(t,D)
plot(t,A-D,":k")
legend("Input Data","Detrended Data","Trend","Location","northwest")

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Input Data, Detrended Data, Trend.

데이터로 구성된 테이블을 만들고 테이블에서 지정된 변수에서 연속 2차 추세를 제거합니다. 원래 데이터, 추세가 제거된 데이터 및 추세를 플로팅합니다.

t = (-4:4)';
trend = (t.^2 + 4*t + 3);
sig = [0 1 -2 1 0 1 -2 1 0]';
x = sig + trend;
T = table(t,trend,sig,x);
T = detrend(T,2,"DataVariables","x","SamplePoints","t","ReplaceValues",false)
T=9×5 table
    t     trend    sig    x     x_detrended
    __    _____    ___    __    ___________

    -4      3       0      3     -0.12121  
    -3      0       1      1       0.9697  
    -2     -1      -2     -3      -1.9654  
    -1      0       1      1       1.0736  
     0      3       0      3      0.08658  
     1      8       1      9       1.0736  
     2     15      -2     13      -1.9654  
     3     24       1     25       0.9697  
     4     35       0     35     -0.12121  

plot(T,"t","x")
hold on
plot(T,"t","x_detrended")
plot(T.t,T.x-T.x_detrended,":k")
legend("Input Data","Detrended Data","Trend","Location","northwest")

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Input Data, Detrended Data, Trend.

데이터로 구성된 벡터를 만들고 절점 0을 사용하여 조각별 선형 추세를 제거합니다. 결과로 생성되는 출력값이 불연속적일 수 있음을 지정합니다. 원래 데이터, 추세가 제거된 데이터 및 추세를 플로팅합니다.

t = -10:10;
A = t.^3 + 6*t.^2 + 4*t + 3;
bp = 0;
D = detrend(A,1,bp,"SamplePoints",t,"Continuous",false);

plot(t,A)
hold on
plot(t,D)
plot(t,A-D,":k")
legend("Input Data","Detrended Data","Trend","Location","northwest")

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Input Data, Detrended Data, Trend.

입력 인수

모두 축소

입력 데이터로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 지정됩니다.

  • A가 벡터이면 detrendA의 요소에서 추세를 뺍니다.

  • A가 행렬이면 detrend는 열마다 별개로 연산을 수행하여 A의 대응하는 열에서 각 추세를 뺍니다.

  • A가 다차원 배열이면 detrend는 모든 차원에서 열 방향 연산을 수행하여 A의 대응하는 열에서 각 추세를 뺍니다.

  • Asingle형 또는 double형의 숫자형 변수를 포함한 테이블 또는 타임테이블인 경우 detrendA의 각 변수에 대해 개별적으로 연산을 수행하여 A에 대응하는 값에서 각 추세를 뺍니다.

데이터형: double | single
복소수 지원 여부:

다항식 차수로, 음이 아닌 정수 스칼라 또는 "constant"(0과 동일)나 "linear"(1과 동일)로 지정됩니다.

데이터의 조각별 세그먼트를 정의하기 위한 절점으로, 다음 중 하나가 포함된 벡터로 지정됩니다.

  • 절점의 위치를 나타내는 샘플 점 값. 샘플 점 값은 디폴트 샘플 점 벡터 [1 2 3 ...]에 포함되거나 SamplePoints 이름-값 인수로 지정됩니다.

  • 논리적 1(true)이 입력 데이터의 대응하는 요소에 있는 절점을 나타내는 논리값. bp가 논리값을 포함하는 경우, 샘플 점과 길이가 동일해야 합니다.

절점은 데이터의 서로 다른 세그먼트마다 별도로 추세를 계산하고자 할 때 유용합니다.

데이터형: double | single | datetime | duration | logical

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

  • "includenan" — 추세를 계산할 때 입력 데이터의 NaN 값을 포함합니다.

  • "omitnan" — 추세를 계산할 때 입력 데이터의 NaN 값 전체를 무시합니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: D = detrend(A,SamplePoints=1:10:1000)

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: D = detrend(A,"SamplePoints",1:10:1000)

연속성 제약 조건으로, 다음 값 중 하나로 지정됩니다.

  • true — 피팅된 추세가 모든 곳에서 연속이어야 합니다.

  • false — 피팅된 추세가 불연속을 포함할 수 있습니다.

샘플 점으로, 샘플 점 값으로 구성된 벡터로 지정되거나 입력 데이터가 테이블인 경우 다음 표에 나와 있는 옵션 중 하나로 지정됩니다. 샘플 점은 데이터의 x축 위치를 나타내며, 이 샘플 점은 정렬되고 고유한 요소를 가져야 합니다. 샘플 점은 균일하게 샘플링할 필요가 없습니다. 벡터 [1 2 3 ...]이 디폴트 값입니다.

입력 데이터가 테이블이면 다음 옵션 중 하나를 사용하여 샘플 점을 테이블 변수로 지정할 수 있습니다.

테이블 입력값에 대한 옵션설명예제
변수 이름

단일 테이블 변수 이름을 지정하는 문자형 벡터 또는 string형 스칼라

'Var1'

"Var1"

스칼라 변수 인덱스

스칼라 테이블 변수 인덱스

3

논리형 벡터

각각의 요소가 테이블 변수에 해당하는 논리형 벡터로, 여기서 true는 해당하는 변수를 샘플 점으로 지정하고 다른 모든 요소는 false로 지정함

[true false false]

함수 핸들

테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들로, 하나의 테이블 변수에 대해서만 true여야 함

@isnumeric

vartype 첨자

vartype 함수로 생성된 테이블 첨자로 하나의 변수에 대한 첨자만 반환함

vartype('numeric')

참고

입력 데이터가 timetable형인 경우에는 이 이름-값 인수가 지원되지 않습니다. 타임테이블은 행 시간값으로 구성된 벡터를 샘플 점으로 사용합니다. 다른 샘플 점을 사용하려면 행 시간값이 원하는 샘플 점을 포함하도록 타임테이블을 편집해야 합니다.

예: detrend(A,"SamplePoints",0:0.1:10)

데이터형: double | single | datetime | duration

연산을 수행할 테이블 또는 타임테이블 변수로, 다음 표에 있는 옵션 중 하나로 지정됩니다. DataVariables 값은 다항식 추세를 제거할 입력 테이블 또는 타임테이블 변수를 나타냅니다.

테이블 또는 타임테이블에서 DataVariables로 지정되지 않은 다른 변수는 추세를 제거하지 않은 채 출력값으로 전달됩니다.

옵션설명예제
변수 이름

단일 테이블 변수 이름을 지정하는 문자형 벡터 또는 string형 스칼라

'Var1'

"Var1"

변수 이름으로 구성된 벡터

각 요소가 테이블 변수 이름인, 문자형 벡터 또는 string형 배열로 구성된 셀형 배열

{'Var1' 'Var2'}

["Var1" "Var2"]

스칼라 또는 변수 인덱스로 구성된 벡터

스칼라 또는 테이블 변수 인덱스로 구성된 벡터

1

[1 3 5]

논리형 벡터

각각의 요소가 테이블 변수에 해당하는 논리형 벡터. 여기서 true는 해당하는 변수를 포함하고 false는 해당하는 변수를 제외합니다.

[true false true]

함수 핸들

테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들

@isnumeric

vartype 첨자

vartype 함수로 생성된 테이블 첨자

vartype("numeric")

벡터, 행렬 또는 다차원 배열 입력 데이터에는 DataVariables가 지원되지 않습니다.

예: detrend(A,"DataVariables",["Var1" "Var2" "Var4"])

값 바꾸기 표시자로, A가 테이블 또는 타임테이블이면 다음 값 중 하나로 지정됩니다.

  • true 또는 1 — 입력 테이블 변수를 제거한 데이터를 포함하는 테이블 변수로 바꿉니다.

  • false 또는 0 — 입력 테이블 변수를 제거한 데이터를 포함하는 테이블 변수에 추가합니다.

벡터, 행렬 또는 다차원 배열 입력 데이터에는 ReplaceValues가 지원되지 않습니다.

예: detrend(A,"ReplaceValues",false)

  • detrend 함수는 데이터에서 평균이나 최적선(최소제곱 측면에서)을 뺍니다. 데이터가 테이블 형식이거나 여러 개의 데이터 열을 포함하고 있거나 테이블 또는 타임테이블이면 detrend는 각 데이터 열을 개별적으로 처리합니다.

    데이터에서 추세를 제거하면 추세와 관련한 데이터의 변동에 중점을 두고 분석을 수행할 수 있습니다. 일반적으로 선형 추세는 데이터가 규칙적으로 증가하거나 감소함을 나타냅니다. 예를 들어, 센서 드리프트로 인해 규칙적인 변위가 발생할 수 있습니다. 유의미할 수 있는 추세라도 분석 유형에 따라 추세를 제거할 때 더 나은 결과를 나타낼 수 있습니다.

    데이터에서 추세 영향을 제거하는 것이 적합한지 여부는 대개 분석 목적에 따라 다릅니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

함수

라이브 편집기 작업