MATLAB ヘルプ センター
配列の k 個の最小要素を検出
k
B = mink(A,k)
B = mink(A,k,dim)
B = mink(___,'ComparisonMethod',c)
[B,I] = mink(___)
B = mink(A,k) は、A の k 個の最小要素を返します。
B
A
A がベクトルの場合、mink は A の k 個の最小要素を含むベクトルを返します。
mink
A が行列の場合、mink は A の各列の k 個の最小要素が列に含まれる行列を返します。
A が多次元配列の場合、mink は、サイズが 1 に等しくない最初の次元に沿って k 個の最小要素を返します。
例
B = mink(A,k,dim) は次元 dim に沿って A の k 個の最小要素を判別します。
dim
B = mink(___,'ComparisonMethod',c) はオプションで、前述の構文のいずれについても、A の要素を比較する方法を指定します。たとえば、mink(A,k,'ComparisonMethod','abs') は A の要素の絶対値に従って k 個の最小要素を返します。
c
mink(A,k,'ComparisonMethod','abs')
[B,I] = mink(___) は A の k 個の最小値のインデックスを検出し、I に返します。
I
すべて折りたたむ
ベクトルの 3 個の最小要素を計算します。
A = 1:10; B = mink(A,3)
B = 1×3 1 2 3
行列の各行の 3 個の最小要素を計算します。
A = magic(5)
A = 5×5 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
B = mink(A,3,2)
B = 5×3 1 8 15 5 7 14 4 6 13 3 10 12 2 9 11
複素数ベクトルの要素の大きさに従って、2 個の最小要素を計算し、入力ベクトル内で各要素が配置されているインデックスを返します。
A = [2-2i 5+i -7-3i -1+i]
A = 1×4 complex 2.0000 - 2.0000i 5.0000 + 1.0000i -7.0000 - 3.0000i -1.0000 + 1.0000i
[B,I] = mink(A,2,'ComparisonMethod','abs')
B = 1×2 complex -1.0000 + 1.0000i 2.0000 - 2.0000i
I = 1×2 4 1
入力配列。ベクトル、行列または多次元配列として指定します。
A が categorical 型の場合、順序配列でなければなりません。
categorical
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | categorical | datetime | duration 複素数のサポート: あり
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
char
datetime
duration
返す最小値の数。正の整数スカラーとして指定します。k が操作次元の要素数以上である場合、mink はその次元に沿って入力配列を並べ替えます。
操作次元。正の整数スカラーとして指定します。値を指定しない場合、既定値は、サイズが 1 ではない最初の配列の次元です。
m 行 n 列の入力行列 A を考えます。
m
n
mink(A,k,1) は、A の各列で最も小さい k 個の値を計算し、k 行 n 列の行列を返します。
mink(A,k,1)
mink(A,k,2) は、A の各行で最も小さい k 個の値を計算し、m 行 k 列の行列を返します。
mink(A,k,2)
'auto'
'real'
'abs'
比較方法。次のいずれかとして指定します。
'auto' — 入力 A の要素を、A が実数の場合は real(A)、A が複素数の場合は abs(A) により比較します。
real(A)
abs(A)
'real' — 入力 A の要素を、A が実数でも複素数でも、real(A) により比較します。A の要素の実数部が等しい場合、imag(A) を使用して同順位のものを並べ替えます。
imag(A)
'abs' — 入力 A の要素を、A が実数でも複素数でも、abs(A) により比較します。A の要素の大きさが等しい場合、区間 (-π,π] で angle(A) を使用して同順位のものを並べ替えます。
angle(A)
出力配列。スカラー、ベクトル、行列または多次元配列として返されます。mink は小さい方から順に k 個の要素を返します。
インデックス配列。ベクトル、行列または多次元配列として返されます。I のサイズは B と同じです。出力配列 B に繰り返されている要素がある場合、I におけるこれらの要素のインデックスの順序は、入力配列での順序と一致します。
すべて展開する
mink 関数は tall 配列を完全にサポートしています。詳細については、tall 配列を参照してください。
使用上の注意および制限:
入力引数 A では、次のようになります。
次元を指定しない場合、コード ジェネレーターは、可変サイズであるかサイズが 1 と等しくない入力配列の最初の次元に沿って演算を行います。この次元がコード生成時に可変サイズで実行時に 1 になる場合、ランタイム エラーが発生することがあります。このエラーを回避するには、次元を指定します。
生成コードにおいて、入力配列はその全要素の虚数部の値がゼロであっても複素数のままになります。この状況では、生成コードで出力される結果が MATLAB で出力される結果と異なることがあります。ゼロ値の虚数部をもつ複素数データのコード生成 (MATLAB Coder)を参照してください。
backgroundPool
ThreadPool
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
mink 関数は、複素数データを含む数値データおよび logical データに対してパフォーマンスが向上しています。これは、k が 512 以上かつ操作次元の長さの 8% 以上である場合に有効です。
たとえば、次のコードは 10,000 行をもつ数値行列の各列から最小 5,000 要素を返します。以前のリリースと比較して、このコードは約 3.75 倍速くなっています。
function timingTest A = rand(1e4,10); for i = 1:120 M = mink(A,5000); end end
おおよその実行時間は次のとおりです。
R2024b: 1.05 秒
R2025a: 0.28 秒
このコードの時間測定では、Windows® 11、AMD EPYC™ 74F3 24 コア プロセッサ (3.19 GHz) 搭載のテスト システムで、関数 timeit を使用しました。
timeit
timeit(@timingTest)
min | topkrows | maxk
min
topkrows
maxk
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ