Generate Only a Specific Number of Combinations
조회 수: 11 (최근 30일)
이전 댓글 표시
I would like to loop through the combinations of 30 take 20 with no repetition and order does not matter. I would only like to compute the first 100 or so combinations as there are over 30,000,000 total combinations. Is there a MatLab function that will allow me to do this? Functions like nchoosek will generate all possible combinations and take a very long time.
댓글 수: 2
채택된 답변
Matt Fig
2012년 11월 26일
편집: Matt Fig
2012년 11월 26일
There are several functions on the FEX that do something like this. For instance:
One could also make an index into the set by something like this:
A = [88 44 55 66 33 22 11 99 77 66];
idx = randperm(10,4);
A(idx) % A random sampling of 4 elements of A
So you do this in a loop as many times as needed, storing all the idx values and checking for uniqueness, then after the loop you have the needed random samplings.
댓글 수: 0
추가 답변 (1개)
Matt J
2012년 11월 27일
This will generate 120 combinations
A=nchoosek(10,1:3);
N=size(A,1);
Result=[A,repmat(11:27,N,1)];
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!