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!