How can I shuffle a matrix

16 vues (au cours des 30 derniers jours)
xia
xia le 14 Jan 2018
Modifié(e) : xia le 17 Oct 2025 à 6:49
I have matrix nxn, A=[1 2 3 4;5 6 7 8; 9 10 11 12; 13 14 15 16]; I want to shuffle this matrix, which will give AB=[1 2 5 6; 3 4 7 8; 9 10 13 14; 11 12 15 16]. Any help will be highly appreciated

Réponse acceptée

Stephen23
Stephen23 le 14 Jan 2018
Here are two methods to rearrange it according to your question. Adjust to suit the size of your matrix.
>> A=[1 2 3 4;5 6 7 8; 9 10 11 12; 13 14 15 16]
A =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
>> cell2mat(reshape(cellfun(@(m)reshape(m.',2,2).',num2cell(A,2),'uni',0),2,2).')
ans =
1 2 5 6
3 4 7 8
9 10 13 14
11 12 15 16
>> reshape(permute(reshape(permute(reshape(A.',2,2,[]),[1,3,2]),4,2,[]),[1,3,2]),4,[]).'
ans =
1 2 5 6
3 4 7 8
9 10 13 14
11 12 15 16
  1 commentaire
xia
xia le 17 Jan 2018
thank you, this is the answer I am looking for

Connectez-vous pour commenter.

Plus de réponses (1)

Roger Stafford
Roger Stafford le 14 Jan 2018
AB = A;
AB(2,9,6,13,4,11,8,15) = AB(9,2,13,6,11,4,15,8);
  3 commentaires
xia
xia le 14 Jan 2018
I mean how to change the position of some elements in matrix A to be like AB matrix. Based on some literature using shuffle operators, but only include examples as I have mentioned.
xia
xia le 17 Jan 2018
thank you for the answer

Connectez-vous pour commenter.

Catégories

En savoir plus sur Multidimensional Arrays dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by