combinations — Generate all element combinations of arrays.
T = combinations(A1,...,An) returns a host table whose rows contain the Cartesian product of the input elements. Each input is linearized in column-major order.
Syntax
T = combinations(A1, A2, ..., An)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
A | Any | Variadic | — | One or more input arrays; each is linearized in column-major order. |
Returns
| Name | Type | Description |
|---|---|---|
T | Any | Host table whose variables preserve the corresponding input classes. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:grouping:InvalidInput | Inputs are malformed, have incompatible lengths, or request unsupported grouped output. | grouping builtin: invalid input |
RunMat:grouping:TooLarge | The requested dense or combinatorial output exceeds RunMat's materialization limit. | grouping builtin: output is too large |
How combinations works
- Supports numeric, logical, string, character, and cell inputs. Text such as
VariableNamesis ordinary input data, not an option name. - All eight integer classes are public inputs. Each corresponding table variable preserves the exact native integer class and values.
- Row, column, matrix, and multidimensional inputs are linearized columnwise; output variables are columns and empty integer inputs retain their class.
- The result is a host table. Resident inputs use a gated RunMat gather extension rather than a public compatibility path.
Example
Generate pairs
T = combinations([1 2],["x" "y"])Expected output:
T = 4x2 tableUsing combinations with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how combinations changes the result.
Run a small combinations example, explain the result, then change one input and compare the output.
Related Array functions
Grouping
accumarray · discretize · findgroups · groupcounts · grp2idx · splitapply
Sorting Sets
argsort · intersect · ismember · ismembertol · issorted · issortedrows · setdiff · setxor · sort · sortrows · union · unique
Shape
blkdiag · cat · circshift · diag · flip · fliplr · flipud · horzcat · ipermute · kron · permute · repelem · repmat · reshape · rot90 · squeeze · toeplitz · tril · triu · vertcat
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how combinations is executed, line by line, in Rust.
- View the source for combinations in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
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.