MATLAB Answers


Using ALLCOMB for unknown number of vectors

Asked by osman
on 18 Sep 2019 at 12:41
Latest activity Commented on by Jos (10584)
on 19 Sep 2019 at 20:22
Hello There!
I have N number of vectors recorded into workspace. I need to perform combination among themselves by using allcomb. How could I introduce the vectors into the command (allcomb) in the form of B = ALLCOMB(A1,A2,A3,...,AN).
Thanks inadvance....


on 18 Sep 2019 at 12:46
How are your n vectors stored? If they are each in their own variable then what is wrong with just literally adding them all as input arguments as in the function signature?
on 18 Sep 2019 at 13:09
My variables are dynamic. the number of variables is continuously changing. I can not write them as you said. I have to define a set of variable like B = ALLCOMB(A1,A2,A3,...,AN). I do not know how to do this.
John D'Errico
on 18 Sep 2019 at 13:20
READ THE RESPONSE BY BRUNO. Learn how to use cell arrays instead of dynamically naming your variables. Numbered variables is a terrible programming style, that if you continue to follow it, will continuously lead you into problems, just as you are having now.

Sign in to comment.

1 Answer

Answer by Bruno Luong
on 18 Sep 2019 at 12:47

Create a CELL array, and get rid of the method of naming your variables with number 1,2,....
C = {A1, A2, A3, ..., AN}
B = allcomb(C{:});


Bruno Luong
on 19 Sep 2019 at 10:12
Do you understand when I wrote:
"They compule two different things."
% Example
% Your's
Your1 = allcomb(U(1,:),U(2,:),U(3,:),U(4,:))
% Your again
for k = 1:size(U,1)
Your2 = allcomb(C{:})
% Jos's
C = mat2cell(U, size(U,1), ones(1,size(U,2)));
Jos = allcomb(C{:})
% Bruno's
C = mat2cell(U, ones(1,size(U,1)), size(U,2));
Bruno = allcomb(C{:})
on 19 Sep 2019 at 10:23
Thanks so much! I really appreciate about what you made me recognize.
Jos (10584)
on 19 Sep 2019 at 20:22
Thanks Bruno, for correcting me, and thereby helping osman :-)

Sign in to comment.