이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
islocalmin
국소 최솟값 구하기
설명
는 하나 이상의 이름-값 쌍의 인수를 사용하여 국소 최솟값을 구하기 위한 추가 파라미터를 지정합니다. 예를 들어, TF
= islocalmin(___,Name,Value
)islocalmin(A,'SamplePoints',t)
는 시간 벡터 t
에 포함된 타임스탬프 값 대비 A
의 국소 최솟값을 구합니다.
예제
벡터의 국소 최솟값
벡터 데이터의 국소 최솟값을 계산하고 플로팅합니다.
x = 1:100;
A = (1-cos(2*pi*0.01*x)).*sin(2*pi*0.15*x);
TF = islocalmin(A);
plot(x,A,x(TF),A(TF),'r*')
행렬 행의 국소 최솟값
행렬을 만들고 각 행에 대한 국소 최솟값을 계산합니다.
A = -25*diag(ones(5,1)) + rand(5,5); TF = islocalmin(A,2)
TF = 5x5 logical array
0 0 0 1 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 1 0 0
분리된 국소 최솟값
벡터 t
의 타임스탬프 값에 대한 데이터로 구성된 벡터의 국소 최솟값을 계산합니다. 'MinSeparation'
파라미터를 사용하여 45분 이상의 간격을 두는 국소 최솟값을 계산합니다.
t = hours(linspace(0,3,15)); A = [2 4 6 4 3 7 5 6 5 10 4 -1 -3 -2 0]; TF = islocalmin(A,'MinSeparation',minutes(45),'SamplePoints',t); plot(t,A,t(TF),A(TF),'r*')
평탄 국소 최솟값 영역
연속적으로 나타나는 국소 최솟값을 표시하는 방법을 지정합니다.
연속적으로 국소 최솟값이 나타나는 데이터의 국소 최솟값을 계산합니다. 이 값이 처음 나타나는 지점을 보여주며 각 평탄 영역의 최소점을 표시합니다.
x = 0:0.1:5; A = max(-0.75, sin(pi*x)); TF1 = islocalmin(A, 'FlatSelection', 'first'); plot(x,A,x(TF1),A(TF1),'r*')
이 값이 나타나는 모든 지점을 보여주며 각 평탄 영역의 최소점을 표시합니다.
TF2 = islocalmin(A, 'FlatSelection', 'all'); plot(x,A,x(TF2),A(TF2),'r*')
돌출 국소 최솟값
벡터 데이터의 국소 최솟값과 돌출부를 계산한 다음 데이터와 함께 플로팅합니다.
x = 1:100; A = peaks(100); A = A(50,:); [TF1,P] = islocalmin(A); P(TF1)
ans = 1×2
2.7585 1.7703
plot(x,A,x(TF1),A(TF1),'r*') axis tight
최소 돌출부 요구 사항을 지정하여 데이터에서 가장 돌출된 최소점을 계산합니다.
TF2 = islocalmin(A,'MinProminence',2); plot(x,A,x(TF2),A(TF2),'r*') axis tight
입력 인수
A
— 입력 데이터
벡터 | 행렬 | 다차원 배열 | 테이블 | 타임테이블
입력 데이터로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 지정됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| table
| timetable
dim
— 연산 차원
양의 정수 스칼라
연산 차원으로, 양의 정수 스칼라로 지정됩니다. 기본적으로 islocalmin
은 크기가 1이 아닌 첫 번째 차원을 따라 동작합니다.
예를 들어, A
가 행렬이면 islocalmin(A,1)
은 A
의 행에서 연산을 수행해 각 열에 대한 국소 최솟값을 계산합니다.
islocalmin(A,2)
는 A
의 열에서 연산을 수행해 각 행에 대한 국소 최솟값을 계산합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
이름-값 인수
예: TF = islocalmin(A,'MinProminence',2)
선택적으로 Name,Value
인수가 쉼표로 구분되어 지정됩니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. Name
은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN
과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.
SamplePoints
— 샘플 점
벡터 | 테이블 변수 이름 | 스칼라 | 함수 핸들 | 테이블 vartype
첨자
샘플 점으로, 'SamplePoints'
와 함께 샘플 점 값으로 구성된 벡터가 쉼표로 구분되어 지정되거나, 또는 입력 데이터가 테이블인 경우 다음 표의 옵션과 함께 구성된 쌍이 쉼표로 구분되어 지정됩니다. 샘플 점은 데이터의 x축 위치를 나타내며, 이 샘플 점은 정렬되고 고유한 요소를 가져야 합니다. 샘플 점은 균일하게 샘플링할 필요가 없습니다. 벡터 [1 2 3 ...]
이 디폴트 값입니다.
이 입력 데이터가 테이블이면 다음 옵션 중 하나를 사용하여 샘플 점을 테이블 변수로 지정할 수 있습니다.
테이블 입력값에 대한 옵션 | 설명 | 예제 |
---|---|---|
변수 이름 | 단일 테이블 변수 이름을 지정하는 문자형 벡터 또는 string형 스칼라 |
|
스칼라 변수 인덱스 | 스칼라 테이블 변수 인덱스 |
|
논리형 벡터 | 각각의 요소가 테이블 변수에 해당하는 논리형 벡터로, 여기서 |
|
함수 핸들 | 테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들로, 하나의 테이블 변수에 대해서만 |
|
vartype 첨자 |
|
|
참고
입력 데이터가 timetable
형인 경우에는 이 이름-값 쌍이 지원되지 않습니다. 타임테이블은 항상 행 시간값으로 구성된 벡터를 샘플 점으로 사용합니다. 다른 샘플 점을 사용하려면 행 시간값이 원하는 샘플 점을 포함하도록 타임테이블을 편집해야 합니다.
예: islocalmax(A,'SamplePoints',0:0.1:10)
예: islocalmax(T,'SamplePoints',"Var1")
데이터형: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| datetime
| duration
DataVariables
— 연산을 수행할 테이블 변수
테이블 변수 이름 | 스칼라 | 벡터 | 셀형 배열 | 함수 핸들 | 테이블 vartype
첨자
연산을 수행할 테이블 변수로, 'DataVariables'
와 함께 다음 표에 있는 옵션 중 하나가 쉼표로 구분되어 지정됩니다. 'DataVariables'
값은 입력 테이블에서 국소 최솟값이 있는지 조사할 변수를 나타냅니다. 지정된 변수와 연결된 데이터형은 숫자형 또는 logical
형이어야 합니다. 테이블에서 'DataVariables'
로 지정되지 않은 다른 변수는 연산이 수행되지 않으므로 출력값은 이러한 변수에 대해 false
값을 포함합니다.
옵션 | 설명 | 예제 |
---|---|---|
변수 이름 | 단일 테이블 변수 이름을 지정하는 문자형 벡터 또는 string형 스칼라 |
|
변수 이름으로 구성된 벡터 | 각 요소가 테이블 변수 이름인, 문자형 벡터 또는 string형 배열로 구성된 셀형 배열 |
|
스칼라 또는 변수 인덱스로 구성된 벡터 | 스칼라 또는 테이블 변수 인덱스로 구성된 벡터 |
|
논리형 벡터 | 각각의 요소가 테이블 변수에 해당하는 논리형 벡터. 여기서 |
|
함수 핸들 | 테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들 |
|
vartype 첨자 |
|
|
예: islocalmin(T,'DataVariables',["Var1" "Var2" "Var4"])
MinProminence
— 최소 돌출부
0 (디폴트 값) | 음이 아닌 스칼라
최소 돌출부로, 'MinProminence'
와 함께 음이 아닌 스칼라가 쉼표로 구분되어 지정됩니다. islocalmin
은 최소 지정된 값 이상인 돌출부를 갖는 국소 최솟값만 반환합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ProminenceWindow
— 돌출부 윈도우
양의 정수 스칼라 | 양의 정수로 구성된 요소를 2개 가진 벡터 | 양의 duration형 스칼라 | 양의 duration형으로 구성된 요소를 2개 가진 벡터
돌출부 윈도우로, 'ProminenceWindow'
와 함께 양의 정수 스칼라, 양의 정수로 구성된 요소를 2개 가진 벡터, 양의 duration형 스칼라 또는 양의 duration형으로 구성된 요소를 2개 가진 벡터가 쉼표로 구분되어 지정됩니다. 이 값은 각 국소 최솟값에 대해 돌출부를 계산할 인접 점의 윈도우를 정의합니다.
윈도우 값이 양의 정수 스칼라 k인 경우 윈도우는 각 국소 최솟값의 인근 지점에 중심을 두며, k-1개의 인접 요소를 가집니다. k가 짝수이면 윈도우의 중심은 현재 요소 및 이전 요소가 됩니다. 국소 최솟값이 평탄 영역 내에 있는 경우 islocalmin
은 전체 평탄 영역을 윈도우의 중심점으로 취급합니다.
이 값이 양의 정수 요소를 2개 가진 벡터 [b f]
인 경우 윈도우에는 국소 최솟값, 국소 최솟값의 역방향으로 b
개 요소, 그리고 국소 최솟값의 정방향으로 f
개 요소가 포함됩니다. 국소 최솟값이 평탄 영역 내에 있는 경우 윈도우는 평탄 영역의 첫 번째 점으로부터 b
개 요소 앞에서 시작하고 평탄 영역의 마지막 점으로부터 f
개 요소 뒤에서 끝납니다.
입력 데이터가 timetable형이거나 'SamplePoints'
가 datetime
형 또는 duration
형 벡터로 지정된 경우 윈도우 값은 duration
형이어야 하며, 윈도우는 샘플 점을 기준으로 하여 계산됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| duration
FlatSelection
— 평탄 영역 표시자
'center'
(디폴트 값) | 'first'
| 'last'
| 'all'
국소 최솟값이 연속으로 반복되는 경우에 대한 평탄 영역 표시자로, 'FlatSelection'
과 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.
'center'
— 평탄 영역의 중앙 요소만 국소 최솟값으로 나타냅니다. 평탄 영역의 중앙에 해당하는TF
의 요소가 1이 되고 나머지 요소는 0이 됩니다.'first'
— 평탄 영역의 첫 번째 요소만 국소 최솟값으로 나타냅니다. 평탄 영역의 시작 지점에 해당하는TF
의 요소가 1이 되고 나머지 요소는 0이 됩니다.'last'
— 평탄 영역의 마지막 요소만 국소 최솟값으로 나타냅니다. 평탄 영역의 끝 지점에 해당하는TF
의 요소가 1이 되고 나머지 요소는 0이 됩니다.'all'
— 평탄 영역의 모든 요소를 국소 최솟값으로 나타냅니다. 평탄 영역에 해당하는 모든TF
의 요소가 1이 됩니다.
'MinSeparation'
또는 'MaxNumExtrema'
이름-값 쌍을 사용하면 평탄 영역의 점들은 다 같이 하나의 국소 최솟값으로 간주됩니다.
MinSeparation
— 최소 간격
0 (디폴트 값) | 음이 아닌 스칼라
국소 최솟값 간의 최소 간격으로, 'MinSeparation'
와 함께 음이 아닌 스칼라가 쉼표로 구분되어 지정됩니다. 간격 값은 샘플 점 벡터와 같은 단위로 정의되며, 이것은 기본적으로 [1 2 3 ...]
입니다. 간격 값이 0보다 크면 islocalmin
은 가장 작은 국소 최솟값을 선택하고 지정된 간격 내 다른 모든 국소 최솟값은 무시합니다. 이 과정은 더 이상 국소 최솟값이 발견되지 않을 때까지 반복됩니다.
샘플 점 벡터가 datetime
형을 사용할 경우 간격 값은 duration
형을 사용해야 합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| duration
MaxNumExtrema
— 국소 최솟값의 최대 개수
양의 정수 스칼라
찾을 국소 최솟값의 최대 개수로, 'MaxNumExtrema'
와 함께 양의 정수 스칼라가 쉼표로 구분되어 지정됩니다. islocalmin
은 지정된 최대 개수만큼의 가장 두드러진 국소 최솟값을 찾습니다. 이 개수는 기본적으로 연산 차원의 길이입니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
출력 인수
세부 정보
국소 최솟값의 돌출부
국소 최솟값(밸리라고도 함)의 돌출부는 어떠한 밸리가 깊이와 위치 측면에서 다른 밸리와 비교해서 얼마나 두드러지는지를 측정합니다.
밸리의 돌출부를 측정하려면 먼저 밸리 지점에서 수평선을 좌우 방향으로 연장하여 그리십시오. 이 선이 왼쪽과 오른쪽에 있는 데이터와 교차하는 지점을 찾아보십시오. 이 지점은 다른 밸리이거나 데이터의 끝이 될 수 있습니다. 이러한 위치를 왼쪽 간격과 오른쪽 간격의 외부 끝점으로 표시합니다. 다음으로, 왼쪽 간격과 오른쪽 간격 모두에서 최고 피크를 찾습니다. 두 피크 중 더 작은 것을 채택하고 그 피크에서 밸리까지 수직 거리를 측정합니다. 이 거리가 돌출부입니다.
벡터 x
의 경우, 최대 돌출부는 최대 max(x)-min(x)
입니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
사용법 관련 참고 및 제한 사항:
tall형 타임테이블은 지원되지 않습니다.
'ProminenceWindow'
이름-값 쌍에 대한 값을 지정해야 합니다.'MaxNumExtrema'
,'MinSeparation'
및'SamplePoints'
이름-값 쌍은 지원되지 않습니다.'DataVariables'
의 값은 함수 핸들일 수 없습니다.
자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
가변 크기 배열에 대한 지원을 활성화해야 합니다.
'ProminenceWindow'
이름-값 쌍은 지원되지 않습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 Run MATLAB Functions in Thread-Based Environment 항목을 참조하십시오.
버전 내역
참고 항목
min
| isoutlier
| ischange
| islocalmax
| 국소 극값 찾기
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 (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- 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)