Permute/Rearrange/Shuffle the elements of a matrix
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, I have
A=[2 3
4 1
1 4
3 2
5 5];
I want have the all possible arrangements, with a condition,there is no repetition for each column.
How can I do this? Thanks in advance.
2 Commenti
Geoff Hayes
il 15 Giu 2014
Grace - so you want all 5x2 matrices which have elements 1 through 5 in each column arranged uniquely? Or are the rows fixed and you want all arrangements of the rows? Please provide some of the arrangements from your above example or start with a smaller matrix to make it more clear what you expect.
Risposte (1)
Roger Stafford
il 15 Giu 2014
With n = 5 rows in A you would get 14,400 different B matrices and that is too many to dream up names for, so I have put them all into a single n-by-2-by-(n!)^2 array which I call B. Each slice along the third dimension would be one of your n-by-2 matrices which you called B1, B2, B3, etc.
n = size(A,1);
P = perms(1:n)';
N = size(P,2);
B = zeros(n,2,N,N);
for i1 = 1:N
for i2 = 1:N
B(:,:,i1,i2) = [A(P(:,i1),1),A(P(:,i2),2)];
end
end
B = reshape(n,2,N^2);
Vedere anche
Categorie
Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!