mink — Return the k smallest elements in MATLAB and RunMat.

mink(A,k) returns the smallest k values from each slice of A along the first non-singleton dimension. A second output returns one-based indices within the selected dimension.

Syntax

B = mink(A, k)
[B, I] = mink(A, k)
B = mink(A, k, dim)
[B, I] = mink(A, k, dim)
B = mink(A, k, "ComparisonMethod", method)
[B, I] = mink(A, k, "ComparisonMethod", method)
B = mink(A, k, dim, "ComparisonMethod", method)
[B, I] = mink(A, k, dim, "ComparisonMethod", method)

Inputs

NameTypeRequiredDefaultDescription
AAnyYesInput array.
kNumericScalarYesNumber of elements to select from each slice.
dimAnyNoDimension to operate along.
optionNameStringScalarNo"ComparisonMethod"Name-value option name.
optionValueStringScalarNo"auto"Name-value option value.

Returns

NameTypeDescription
BNumericArraySelected values.
INumericArrayOne-based indices along the selected dimension.

Returned values from mink depend on how many outputs the caller requests.

Errors

IdentifierWhenMessage
RunMat:topk:InvalidArgumentArgument count, k, dimension, or option values are invalid.topk: invalid argument
RunMat:topk:InvalidInputInput values cannot be converted to supported top-k domains.topk: invalid input
RunMat:topk:InternalTop-k selection fails due to gather or allocation internals.topk: internal failure

How mink works

  • mink(A,k) selects along the first non-singleton dimension and clamps nonnegative k to that dimension's length. k = 0 returns an empty result along the selected dimension.
  • mink(A,k,dim) selects along the specified dimension. Dimensions larger than ndims(A) behave like trailing singleton dimensions and return the input with index values of 1.
  • [B,I] = mink(...) returns selected values and one-based indices along the selected dimension.
  • Real, integer, logical, complex, scalar, vector, matrix, and N-D tensor inputs are supported. Integers and logical values are promoted to double precision.
  • Complex inputs support 'ComparisonMethod','auto', 'abs'/'magnitude', and 'real', matching the comparison options used by min.
  • GPU tensors gather to the host for top-k selection and return host tensors.

Examples

Smallest values from each column

A = [3 2; 4 6; 1 5];
[B,I] = mink(A,2)

Expected output:

B = [1 2; 3 5]
I = [3 1; 1 3]

Smallest values along rows

A = [3 1 5; 4 2 6];
B = mink(A,2,2)

Expected output:

B = [1 3; 2 4]

Using mink with coding agents

Open a RunMat example with live inputs, then ask the agent to explain how mink changes the result.

Run a small mink example, explain the result, then change one input and compare the output.

FAQ

Does mink preserve GPU residency?

Not currently. RunMat gathers GPU tensors to the host because top-k provider hooks are not available yet.

Can k be zero or larger than the selected dimension?

Yes. k = 0 returns an empty result along the selected dimension. Larger values are clamped to the selected dimension length, so the full sorted slice is returned.

Reduction

all · any · bounds · cummax · cummin · cumprod · cumsum · cumtrapz · diff · gradient · max · maxk · mean · median · min · movmax · movmean · movmedian · movmin · movprod · movstd · movsum · movvar · nnz · prod · rms · std · sum · trapz · var

Elementwise

abs · angle · bsxfun · complex · conj · double · erf · erfcinv · exp · expm1 · factorial · flintmax · gamma · gammaln · heaviside · hypot · idivide · imag · intmax · intmin · ldivide · log · log10 · log1p · log2 · minus · nextpow2 · plus · pow2 · power · rdivide · real · realmax · realmin · realsqrt · rescale · sign · single · sqrt · swapbytes · times · uint32

Trigonometry

acos · acosh · asin · asinh · atan · atan2 · atanh · cos · cosd · cosh · cospi · deg2rad · pol2cart · rad2deg · sin · sind · sinh · sinpi · tan · tand · tanh

Rounding

ceil · fix · floor · mod · rem · round

Factor

chol · decomposition · eig · eigs · lu · qr · svd

Solve

cond · det · inv · linsolve · norm · null · pinv · rank · rcond · rref · vecnorm

Symbolic

digits · int · limit · piecewise · sym · syms · vpa

Fft

fft · fft2 · fftshift · ifft · ifft2 · ifftshift

Discrete

lcm · primes

Ode

ode15s · ode23 · ode45

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how mink is executed, line by line, in Rust.

About RunMat

RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.

  • RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
  • Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.