all possible combinations of three vectors

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?

 Réponse acceptée

Guillaume
Guillaume le 24 Mai 2017
One possible way, which doesn't require any toolbox:
[ca, cb, cc] = ndgrid(A, B, C);
combs = [ca(:), cb(:), cc(:)]

5 commentaires

Rogier Busscher
Rogier Busscher le 24 Mai 2017
It seems to be working, thank you dearly!
@guillaume is it possible use ndgrid when I don't know explicilty the number of output arguements. Based on some number 'n' my code must be able to keep output arguements as [x1,x2,...,xn] = ndgrid(X).
Thanks in advance!
x=cell(1,n)
[x{:}] = ndgrid(X)
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.
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

Connectez-vous pour commenter.

Plus de réponses (1)

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(:)];

Catégories

En savoir plus sur Get Started with MATLAB dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by