combination of numbers which is not in matrix form

1 次查看(过去 30 天)
A=[1 6]; B=[2 3 4]; C=[8 9];
i want:
comb=1 2 8, 1 2 9, 1 3 8, 1 3 9, ........., 6 4 8,6 4 9
i m using for loop for this program but i increase more number of element then my program does not work, its go went to infinity. pls help me for generlise program or any command for this types of problem.
  1 个评论
Jan
Jan 2013-4-19
We cannot generalize your program, we we do not see it. So please post your code, when you want us to help.

请先登录,再进行评论。

采纳的回答

Jan
Jan 2013-4-19
Did you search in the FileExchange already? This would be a good idea before asking the forum. What about http://www.mathworks.com/matlabcentral/fileexchange/10064-allcomb?

更多回答(1 个)

Andrei Bobrov
Andrei Bobrov 2013-4-19
编辑:Andrei Bobrov 2013-4-19
A=[1 6]; B=[2 3 4]; C=[8 9];
Use function fullfact from Statistics Toolbox.
for your case:
t = {A,B,C};
k = cellfun(@numel,t);
ii = fullfact(k);
idx = bsxfun(@plus,ii,cumsum(k) - k);
s = [t{:}];
comb = s(idx);
comb = reshape(sortrows(comb)',1,[]); % ADD
  4 个评论

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by