All the combinations for 3 variables

조회 수: 28 (최근 30일)
Salad Box
Salad Box 2023년 1월 13일
댓글: Salad Box 2023년 1월 13일
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.

채택된 답변

Torsten
Torsten 2023년 1월 13일
편집: Torsten 2023년 1월 13일
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
  댓글 수: 1
Salad Box
Salad Box 2023년 1월 13일
That worked perfectly. Thank you very much.:)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by