このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
islocalmin
局所的最小値の検出
説明
は logical 配列を返します。この配列の要素は、TF
= islocalmin(A
)A
の対応する要素で局所的最小値が検出された場合に 1 (true
) となります。
islocalmin
の機能を対話的に使用するには、ライブ スクリプトに [局所的極値の検出] タスクを追加します。
は、前述の構文の任意の入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用して局所的最小値を検出するためのパラメーターを指定します。たとえば、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
入力データ。ベクトル、行列、多次元配列、table または timetable として指定します。
dim
— 操作次元
正の整数スカラー
操作次元。正の整数スカラーとして指定します。値を指定しない場合、既定値は、サイズが 1 ではない最初の配列の次元です。
m
行 n
列の入力行列 A
を考えます。
islocalmin(A,1)
は、A
の各列のデータに従って局所的最小値を計算し、m
行n
列の行列を返します。islocalmin(A,2)
は、A
の各行のデータに従って局所的最小値を計算し、m
行n
列の行列を返します。
入力データが table または timetable の場合、dim
はサポートされず、演算は各 table 変数または timetable 変数に沿って個別に行われます。
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: TF = islocalmin(A,'MinProminence',2)
SamplePoints
— サンプル点
ベクトル | table 変数名 | スカラー | 関数ハンドル | table vartype
添字
サンプル点。サンプル点のベクトル、または次の表のいずれかのオプション (入力データが table の場合) として指定します。サンプル点はデータの x 軸の位置を表し、並べ替える必要があり、一意の要素を含まなければなりません。サンプル点は等間隔でサンプリングされている必要はありません。既定の設定はベクトル [1 2 3 ...]
です。
入力データが table の場合は、次のいずれかのオプションを使用して、サンプル点を table 変数として指定できます。
インデックス方式 | 例 |
---|---|
変数名:
|
|
変数インデックス:
|
|
関数ハンドル:
|
|
変数の型:
|
|
メモ
入力データが timetable
の場合、この名前と値の引数はサポートされません。timetable では、行時間のベクトルをサンプル点として使用します。別のサンプル点を使用するには、目的のサンプル点が行時間に含まれるように timetable を編集しなければなりません。
例: islocalmin(A,'SamplePoints',0:0.1:10)
例: islocalmin(T,'SamplePoints',"Var1")
DataVariables
— 演算の対象とする table 変数
table 変数名 | スカラー | ベクトル | cell 配列 | パターン | 関数ハンドル | table vartype
添字
演算の対象とする table 変数。DataVariables
と次の表のいずれかのオプションで構成されるコンマ区切りのペアとして指定します。DataVariables
の値は、入力 table 内の局所的最小値を調べる変数を示します。指摘された変数に関連付けられるデータ型は数値または logical
でなければなりません。
最初の出力 TF
には、DataVariables
で指定されていない変数については false
が格納されます。ただし、OutputFormat
の値が 'tabular'
の場合を除きます。
インデックス方式 | 例 |
---|---|
変数名:
|
|
変数インデックス:
|
|
関数ハンドル:
|
|
変数の型:
|
|
例: islocalmin(T,'DataVariables',["Var1" "Var2" "Var4"])
OutputFormat
— 出力データ型
'logical'
(既定値) | 'tabular'
出力データ型。次の値のいずれかとして指定します。
'logical'
— 入力データが table または timetable の場合、出力TF
を logical 配列として返します。'tabular'
— 入力データが table の場合、出力TF
を table として返します。入力データが timetable の場合、出力TF
を timetable として返します。
入力データがベクトル、行列、または多次元配列の場合、OutputFormat
はサポートされません。
例: islocalmin(T,'OutputFormat','tabular')
MinProminence
— 最小プロミネンス
0 (既定値) | 非負のスカラー
最小プロミネンス。非負のスカラーとして指定します。islocalmin
は、プロミネンスが指定した値以上である局所的最小値のみを返します。
ProminenceWindow
— プロミネンス ウィンドウ
正の整数スカラー | 正の整数の 2 要素ベクトル | 正の duration スカラー | 正の duration の 2 要素ベクトル
プロミネンス ウィンドウ。正の整数スカラー、正の整数の 2 要素ベクトル、正の duration スカラー、または正の duration の 2 要素ベクトルとして指定します。この値は、各局所的最小値のプロミネンスの計算対象となる、隣接する点のウィンドウを定義します。
ウィンドウ値が正の整数スカラー k である場合、ウィンドウは各局所的最小値を中心として配置され、k-1
個の隣接する要素を含みます。k が偶数である場合、ウィンドウは現在の要素および直前の要素を中心にして配置されます。局所的最小値がフラット領域内にある場合、islocalmin
はフラット領域全体をウィンドウの中心点として扱います。
値が正の整数の 2 要素ベクトル [b f]
である場合、ウィンドウには局所的最小値、b
個前までの要素、f
個後までの要素が含まれます。局所的最小値がフラット領域内にある場合、ウィンドウはその領域の最初の点の b
個前にある要素から始まり、その領域の最後の点の f
個後にある要素で終わります。
入力データが timetable である場合、または SamplePoints
が datetime
または duration
ベクトルとして指定されている場合、ウィンドウ値の型は duration
でなければならず、ウィンドウはサンプル点を基準にして計算されます。
FlatSelection
— フラット領域インジケーター
'center'
(既定値) | 'first'
| 'last'
| 'all'
局所的最小値が連続して繰り返される場合のフラット領域インジケーター。次のいずれかの値として指定します。
'center'
— フラット領域の中心要素のみを局所的最小値として表します。フラットの中心に対応するTF
の要素は 1 で、残りのフラット要素には 0 が対応します。'first'
— フラット領域の最初の要素のみを局所的最小値として表します。フラットの開始に対応するTF
の要素は 1 で、残りのフラット要素には 0 が対応します。'last'
— フラット領域の最後の要素のみを局所的最小値として表します。フラットの終了に対応するTF
の要素は 1 で、残りのフラット要素には 0 が対応します。'all'
— フラット領域のすべての要素を局所的最小値として表します。フラットのすべての部分に対応するTF
の要素が 1 となります。
名前と値の引数 MinSeparation
または MaxNumExtrema
を使用する場合、フラット領域の点はあわせて 1 つの最小点と見なされます。
MinSeparation
— 最小間隔
0 (既定値) | 非負のスカラー
局所的最小値の間の最小間隔。非負のスカラーとして指定します。この間隔の値は、サンプル点ベクトルと同じ単位で定義されます。既定では [1 2 3 ...]
です。間隔の値が 0 より大きい場合、islocalmin
は指定した間隔の中で最小の局所的最小値を選択し、他の局所的最小値はすべて無視します。この処理は、局所的最小値が他に検出されなくなるまで繰り返されます。
サンプル点ベクトルが datetime
型である場合、間隔の値は duration
型でなければなりません。
MaxNumExtrema
— 最小値の最大数
正の整数スカラー
検出する最小値の最大数。正の整数スカラーとして指定します。islocalmin
は最も顕著な最小値を指定した数以内で検出します。これは既定では操作次元の長さです。
出力引数
TF
— 局所的最小値インジケーター
ベクトル | 行列 | 多次元配列 | table | timetable
局所的最小値インジケーター。ベクトル、行列、多次元配列、table または timetable として返されます。
TF
は、OutputFormat
の値が 'tabular'
の場合を除き、A
と同じサイズになります。OutputFormat
の値が 'tabular'
の場合、TF
は、指定された DataVariables
に対応する変数のみをもちます。
データ型: logical
P
— プロミネンス
ベクトル | 行列 | 多次元配列 | table | timetable
プロミネンス。ベクトル、行列、多次元配列、table または timetable として返されます。
P
がベクトル、行列または多次元配列の場合、P
のサイズはA
と同じです。P
が table または timetable の場合、P
の高さはA
と同じで、指定したDataVariables
に対応する変数のみをもちます。
入力データが符号付きまたは符号なし整数型の場合、P
は符号なし整数です。
詳細
局所的最小値のプロミネンス
局所的最小値 (谷) のプロミネンスは、他の谷を基準とした相対的な深さと位置を基準にし、その谷がどの程度顕著であるかを測定するものです。
谷のプロミネンスを測定するには、最初に谷からの水平線を伸ばします。この線が左側および右側のデータと交差する場所を探します。その場所は別の谷かデータの最後のいずれかとなります。これらの場所を左側および右側の間隔の外側の端点としてマークします。次に、左側と右側の両方の間隔で最高のピークを検出します。これらの 2 つのピークのうち小さい方を使用して、そのピークから谷までの垂直距離を測定します。この距離がプロミネンスです。
ベクトル x
の最大プロミネンスは、最大で max(x)-min(x)
です。
代替機能
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
使用上の注意事項および制限事項:
tall timetable はサポートされていません。
名前と値の引数
ProminenceWindow
に対し値を指定しなければなりません。名前と値の引数
MaxNumExtrema
、MinSeparation
、およびSamplePoints
はサポートされません。DataVariables
の値を関数ハンドルにすることはできません。
詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
可変サイズ配列のサポートを有効にしなければなりません。
名前と値の引数
ProminenceWindow
はサポートされていません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2017b で導入R2022a: logical 出力が含まれる table または timetable を返す
入力データが table または timetable の場合は、名前と値の引数 OutputFormat
を 'tabular'
に設定することにより、logical 配列の代わりに表形式の出力 TF
を返します。
R2021b: table 変数としてのサンプル点の指定
入力データが table の場合は、名前と値の引数 SamplePoints
を使用して、サンプル点を table 変数として指定します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは 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)