All the combinations for 3 variables

30 views (last 30 days)
Hi,
I have 3 variables, each of which is an array containing differnet numbers of elements.
If I take a simple case as an example, for instance,
x = [0, 1];
y = [0, 1];
z = [0, 1];
Then in reality I would have in total 8 different combinations of xyz that are xyz =
[0 0 0;
0 0 1;
0 1 0;
0 1 1;
1 0 0;
1 0 1;
1 1 0;
1 1 1];
I wonder whether Matlab has a function for this application or do I have to loop it and write my own algorithm in order to obtain all different combinations.
If there is a function, I expect it to be more robust for cases that x, y and z doesn't have to be the same length. In another word, x, y and z doesnt have to contain same number of elements.
Because in reality I would have a lot of points in each of those x, y and z, if I loop it it is gonna take forever I guess.

Accepted Answer

Torsten
Torsten on 13 Jan 2023
Edited: Torsten on 13 Jan 2023
Or use ndgrid:
x = [0, 1];
y = [0, 1];
z = [0, 1];
[X,Y,Z] = ndgrid(x,y,z);
result = [X(:) Y(:) Z(:)]
result = 8×3
0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!