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
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
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
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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!