Combination calculations and matrix manipulation
Show older comments
Hello, I am working on a matrix (m x n) and I want to pick up different groups of m elements which have to be non dependent. Practically speaking I need (n-1)*m+2. For n = 4 and m = 3 I need 11 groups and an example of matrix is: [1 2 3 4, 5 6 7 8, 9 10 11 12] and the groups might be
(1 5 9),(1 5 10),(1 5 11),(1 5 12) 4
(1 6 9),(1 7 9),(1 8 9) 3
(2 5 9),(3 5 9),(4 5 9) 3
(2 6 9) 1
I have the matrix written, do you have any suggestion how to write this problem assuming that n and m are completely random and the first group has to be composed by the first column.
Thank you very much Antonio
Accepted Answer
More Answers (3)
mortain Antonio
on 14 May 2011
1 Comment
Matt Fig
on 14 May 2011
Your first approach using COMBINATOR is NOT what I recommended. Use the output from COMBINATOR the same way I used NPERMUTEK in my first post.
Your second attempt is very odd, since NPERMUTEK is not a recursive algorithm. Did you make changes to the code before you got that error? Because when I copy and paste your code I get R = 64-by-3 where each row has one pick for each row of A, EXACTLY the same as Andrei's code below.
Andrei Bobrov
on 14 May 2011
more so?
A = [1 2 3 4;
5 6 7 8;
9 10 11 12];
A1 = mat2cell(A,[1 1 1],size(A,2));
[J K I] = meshgrid(A1{[2 3 1]});
R = [I(:) J(:) K(:)];
mortain Antonio
on 16 May 2011
3 Comments
Sean de Wolski
on 16 May 2011
That code burns my eyes.
Oleg Komarov
on 16 May 2011
Goog example how to AVOID vectorization on MatLab (Matrix Laboratory) - LOLZ
mortain Antonio
on 17 May 2011
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!