이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
ischange
데이터 내 급격한 변화 찾기
구문
설명
는 하나 이상의 이름-값 인수를 사용하여 변화 지점을 찾기 위한 추가 파라미터를 지정합니다. 예를 들어,TF
= ischange(___,Name,Value
)ischange(A,'MaxNumChanges',m)
은 최대m
개의 변화 지점을 감지합니다.
예제
평균의 변화
잡음이 있는 데이터로 구성된 벡터를 만들고 데이터 평균의 급격한 변화를 계산합니다.
A = [ones(1,5) 25*ones(1,5) 50*ones(1,5)] + rand(1,15); TF = ischange(A)
TF =1x15 logical array0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
변화 지점 간의 데이터 평균을 계산하려면 두 번째 출력 인수를 지정하십시오.
[TF,S1] = ischange(A); plot(A,'*') holdonstairs(S1) legend('Data','Segment Mean','Location','NW')
선형 특성의 변화
잡음이 있는 데이터로 구성된 벡터를 만들고 기울기의 급격한 변화와 데이터의 절편을 계산합니다. 감지 임계값을 크게 설정하면 잡음으로 인해 감지되는 변화 지점 개수가 줄어듭니다.
A = [zeros(1,100) 1:100 99:-1:50 50*ones(1,250)] + 10*rand(1,500); [TF,S1,S2] = ischange(A,'linear','Threshold',200); segline = S1.*(1:500) + S2; plot(1:500,A,1:500,segline) legend('Data','Linear Regime')
임계값을 주는 방법 대신, 감지할 최대 변화 지점 수를 지정할 수도 있습니다.
[TF,S1,S2] = ischange(A,'linear','MaxNumChanges',3);
행렬 데이터
행렬의 각 행에 대한 평균의 급격한 변화 지점을 계산합니다.
A = diag(25*ones(5,1)) + rand(5,5)
A =5×525.8147 0.0975 0.1576 0.1419 0.6557 0.9058 25.2785 0.9706 0.4218 0.0357 0.1270 0.5469 25.9572 0.9157 0.8491 0.9134 0.9575 0.4854 25.7922 0.9340 0.6324 0.9649 0.8003 0.9595 25.6787
TF = ischange(A,2)
TF =5x5 logical array0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1
입력 인수
A
—입력 데이터
벡터|행렬|다차원 배열|테이블|타임테이블
입력 데이터로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 지정됩니다.
데이터형:single
|double
|table
|timetable
method
—변화 감지 방법
'mean'
(디폴트 값) |'variance'
|'linear'
변화 감지 방법으로, 다음 값 중 하나로 지정됩니다.
'mean'
— 데이터 평균에서 급격한 변화를 찾습니다.'variance'
— 데이터 분산에서 급격한 변화를 찾습니다.'linear'
— 기울기에서 급격한 변화와 데이터의 절편을 찾습니다.
dim
—연산 차원
양의 정수 스칼라
연산 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 첫 번째 배열 차원이 됩니다.
m
×n
입력 행렬A
가 있다고 가정합니다.
ischange(A,1)
은A
의 각 열에 있는 데이터에 따라 변화 지점을 감지하고m
×n
행렬을 반환합니다.ischange(A,2)
는A
의 각 행에 있는 데이터에 따라 변화 지점을 감지하고m
×n
행렬을 반환합니다.
table형 또는 timetable형 입력 데이터의 경우dim
은 지원되지 않으며 연산은 각 테이블 변수나 타임테이블 변수를 따라 개별적으로 수행됩니다.
이름-값 인수
선택적 인수 쌍을Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서Name
은 인수 이름이고Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고Name
을 따옴표로 묶으십시오.
예:TF = ischange(A,'MaxNumChanges',5)
SamplePoints
—샘플 점
벡터|테이블 변수 이름|스칼라|함수 핸들|테이블vartype
첨자
샘플 점으로, 샘플 점 값으로 구성된 벡터로 지정되거나 입력 데이터가 테이블인 경우 다음 표에 나와 있는 옵션 중 하나로 지정됩니다. 샘플 점은 데이터의 x축 위치를 나타내며, 이 샘플 점은 정렬되고 고유한 요소를 가져야 합니다. 샘플 점은 균일하게 샘플링할 필요가 없습니다. 벡터[1 2 3 ...]
이 디폴트 값입니다.
입력 데이터가 테이블이면 다음 옵션 중 하나를 사용하여 샘플 점을 테이블 변수로 지정할 수 있습니다.
테이블 입력값에 대한 옵션 | 설명 | 예제 |
---|---|---|
변수 이름 | 단일 테이블 변수 이름을 지정하는 문자형 벡터 또는 string형 스칼라 |
|
스칼라 변수 인덱스 | 스칼라 테이블 변수 인덱스 |
|
논리형 벡터 | 각각의 요소가 테이블 변수에 해당하는 논리형 벡터로, 여기서 |
|
함수 핸들 | 테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들로, 하나의 테이블 변수에 대해서만 |
|
vartype 첨자 |
|
|
참고
입력 데이터가timetable
형인 경우에는 이 이름-값 인수가 지원되지 않습니다. 타임테이블은 행 시간값으로 구성된 벡터를 샘플 점으로 사용합니다. 다른 샘플 점을 사용하려면 행 시간값이 원하는 샘플 점을 포함하도록 타임테이블을 편집해야 합니다.
예:ischange([1 2 3 4 5 6],'linear','SamplePoints',[1 2 3 10 20 30])
예:ischange(T,'linear','SamplePoints',"Var1")
데이터형:single
|double
|datetime
|duration
DataVariables
—연산을 수행할 테이블 변수
테이블 변수 이름|스칼라|벡터|셀형 배열|함수 핸들|테이블vartype
첨자
연산을 수행할 테이블 변수로, 다음 표에 있는 옵션 중 하나로 지정됩니다.DataVariables
값은 입력 테이블에서 변화 지점이 있는지 조사할 변수를 나타냅니다. 지정된 변수와 연결된 데이터형은double
또는single
이어야 합니다.
OutputFormat
의 값이'tabular'
가 아닌 경우 첫 번째 출력값TF
는DataVariables
로 지정되지 않은 변수에 대해false
를 포함합니다.
옵션 | 설명 | 예제 |
---|---|---|
변수 이름 | 단일 테이블 변수 이름을 지정하는 문자형 벡터 또는 string형 스칼라 |
|
변수 이름으로 구성된 벡터 | 각 요소가 테이블 변수 이름인, 문자형 벡터 또는 string형 배열로 구성된 셀형 배열 |
|
스칼라 또는 변수 인덱스로 구성된 벡터 | 스칼라 또는 테이블 변수 인덱스로 구성된 벡터 |
|
논리형 벡터 | 각각의 요소가 테이블 변수에 해당하는 논리형 벡터. 여기서 |
|
함수 핸들 | 테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들 |
|
vartype 첨자 |
|
|
예:ischange(T,'DataVariables',["Var1" "Var2" "Var4"])
OutputFormat
—출력 데이터형
'logical'
(디폴트 값) |'tabular'
출력 데이터형으로, 다음 값 중 하나로 지정됩니다.
'logical'
— table형 또는 timetable형 입력 데이터의 경우 출력값TF
를 논리형 배열로 반환합니다.'tabular'
— table형 입력 데이터의 경우 출력값TF
를 table형으로 반환합니다. timetable형 입력 데이터의 경우 출력값TF
를 timetable형으로 반환합니다.
벡터, 행렬 또는 다차원 배열 입력 데이터에는OutputFormat
이 지원되지 않습니다.
예:ischange(T,'OutputFormat','tabular')
Threshold
—변화 지점 임계값
1(디폴트 값) |음이 아닌 스칼라
변화 지점 임계값으로, 음이 아닌 스칼라로 지정됩니다. 임계값을 1보다 큰 값으로 늘리면 더 적은 변화 지점이 생성됩니다.
임계값은 감지되는 변화 지점 개수를 결정하며MaxNumChanges
가 지정된 경우에는 지정할 수 없습니다.
MaxNumChanges
—최대 변화 지점 개수
양의 정수 스칼라
감지할 최대 변화 지점 개수로, 양의 정수 스칼라로 지정됩니다.ischange
는 지정한 변화 지점 값까지만 계산하는 자동 임계값을 사용하므로MaxNumChanges
가 지정된 경우에는Threshold
를 지정할 수 없습니다.
출력 인수
TF
— 변화 지점 표시자
벡터 | 행렬 | 다차원 배열 | 테이블 | 타임테이블
변화 지점 표시자로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 반환됩니다.
OutputFormat
의 값이'tabular'
가 아닌 경우TF
는A
와 크기가 동일합니다.OutputFormat
의 값이'tabular'
이면TF
는 지정된DataVariables
에 대응하는 변수만 가집니다.
데이터형:logical
S1
— 평균 또는 기울기
벡터 | 행렬 | 다차원 배열 | 테이블 | 타임테이블
변화 지점 간 데이터의 평균 또는 기울기로, 벡터, 행렬, 다차원 배열, 테이블 또는 타임테이블로 반환됩니다.
변화 지점 감지 방법이
'mean'
이나'variance'
이면S1
에는 각 세그먼트에 대한 평균이 포함됩니다.방법이
'linear'
이면S1
에는 각 세그먼트에 대한 기울기가 포함됩니다.
S1
의 유형은 입력 데이터와 같습니다.
데이터형:double
|single
|table
|timetable
S2
— 분산 또는 절편
벡터 | 행렬 | 다차원 배열 | 테이블 | 타임테이블
변화 지점 간 데이터의 분산 또는 절편으로, 벡터, 행렬, 다차원 배열, 테이블 또는 타임테이블로 반환됩니다.
변화 지점 감지 방법이
'mean'
이나'variance'
이면S2
에는 각 세그먼트에 대한 분산이 포함됩니다.방법이
'linear'
이면S2
에는 각 세그먼트에 대한 절편이 포함됩니다.
S2
의 유형은 입력 데이터와 같습니다.
데이터형:double
|single
|table
|timetable
세부 정보
변화 지점
데이터 A로 구성된 벡터는 다음과 같이 두 개의 세그먼트, A1과 A2로 분할될 수 있는 경우 변화 지점이 포함됩니다.
는Threshold
파라미터로 지정되는 임계값이고, C는 비용 함수를 나타냅니다.
예를 들어, 평균에서 급격한 변화를 감지하는 비용 함수는 입니다. 여기서, N은 벡터 x에 있는 요소의 개수입니다. 비용 함수는 세그먼트가 얼마나 평균에 근접한지를 측정합니다.
ischange
는 비용 함수의 합계를 반복적으로 최소화하여 다음과 같이 변화 지점 개수 k와 이러한 변화 지점의 위치를 판별합니다.
참고 문헌
[1]小锚,p . Fearnhead, Eckley主义者。“爸爸timal detection of changepoints with a linear computational cost."Journal of the American Statistical Association. Vol. 107, Number 500, 2012, pp.1590-1598.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
OutputFormat
이름-값 인수는 지원되지 않습니다.단정밀도 입력값의 경우, 생성된 코드의 출력값이 MATLAB®출력값과 일치하지 않을 수 있습니다.
ischange
에 대해 생성된 코드가 대부분의 중간 계산을 단정밀도로 실행하기 때문입니다.DataVariables
는 중복된 변수 이름을 포함할 수 없습니다.
스레드 기반 환경
MATLAB®의backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은스레드 기반 환경에서 MATLAB 함수 실행하기항목을 참조하십시오.
버전 내역
R2017b에 개발됨R2022a:논리형 출력값을 포함하는 테이블 또는 타임테이블 반환
table형 또는 timetable형 입력 데이터의 경우OutputFormat
이름-값 인수를'tabular'
로설정하여논리형배열대신테이블형식출력값TF
를 반환합니다.
R2021b:샘플 점을 테이블 변수로 지정
table형 입력 데이터의 경우,SamplePoints
이름-값 인수를 사용하여 샘플 점을 테이블 변수로 지정합니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(西班牙语)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(西班牙语)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)