How do I produce all possible permutations of a vector, selecting a chosen number of elements?
24 views (last 30 days)
Show older comments
Given some vector like a=[0:3] (but it doesn't have to be evenly spaced) I want to list all permutations (not combinations). I know perms can do this but it doesn't let you choose the number of elements you want.
I managed to do this choosing only 3 elements at a time using meshgrid. Here is my code for that:
%written in Octave
function C3 = ThreeNoteChordGen ()
%stores pitch classes 0 to 11
n=[0:11];
%initialize C3 as blank array;
C3=[];
[xx,yy,zz]=meshgrid(n,n,n);
[numRows, numCols, numPages] = size(zz);
for (countPage=1:numPages)
for (countCol=1:numCols)
newSegment=[zz(:,countCol,countPage), xx(:,countCol,countPage),yy(:,countCol,countPage)];
C3=[C3; newSegment];
endfor
endfor
endfunction
I'm having trouble adapting this method for choosing more elements at a time. I would appreciate any help. I'm very much a beginner programmer so I would rather you point me in the right direction rather than coding it for me (I probably won't understand your code);
Thank you
Accepted Answer
More Answers (0)
See Also
Categories
Find more on Matrix Indexing 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!