all possible combinations of three vectors
41 views (last 30 days)
Show older comments
Rogier Busscher
on 24 May 2017
Commented: Bruno Luong
on 22 Apr 2021
I am trying to find all possible combinations of three vectors (A,B,C). For this, I tried using combvec. However, the result gets me a 1281x1 double, while i expected a matrix of 546*33*649 possibilities.
What i would like to get is:
A: 1,5,6,9,12
B: 1,2,3,4,5,6
C: 3,18,27,69,72
Ans:
1,1,3
1,1,18
1,1,27
etc.
So how do i do this?
0 Comments
Accepted Answer
Guillaume
on 24 May 2017
One possible way, which doesn't require any toolbox:
[ca, cb, cc] = ndgrid(A, B, C);
combs = [ca(:), cb(:), cc(:)]
5 Comments
Abdelmajid Ben yahya
on 22 Apr 2021
Hi,
I have an additional question, if i may.
Is it possible to get all combinations that fulfil a certain constraint? Let's say that within the combination A+B+C<=4.
Thank you.
Bruno Luong
on 22 Apr 2021
Just filter out those are not meet the constraints, or you can use this FEX to get directly the combination
allVL1(3,4,'<=')
ans =
0 0 0
0 0 1
0 1 0
1 0 0
0 0 2
0 1 1
0 2 0
1 0 1
1 1 0
2 0 0
0 0 3
0 1 2
0 2 1
0 3 0
1 0 2
1 1 1
1 2 0
2 0 1
2 1 0
3 0 0
0 0 4
0 1 3
0 2 2
0 3 1
0 4 0
1 0 3
1 1 2
1 2 1
1 3 0
2 0 2
2 1 1
2 2 0
3 0 1
3 1 0
4 0 0
More Answers (1)
Azzi Abdelmalek
on 24 May 2017
A=[1,5,6,9,12]
B= [1,2,3,4,5,6]
C= [3,18,27,69,72]
[ii,jj,kk]=meshgrid(A,B,C);
ii=permute(ii,[1 3 2]);
jj=permute(jj,[2 1 3])
kk=permute(kk,[3 2 1])
out=[ii(:) jj(:) kk(:)];
0 Comments
See Also
Categories
Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!