rearrange matrix elements randomly

I have a matrix and what i want to do is reorder the matrix elements/entries in a random order. for example if the matrix was :
A= [ 1 2 3;
4 5 6;
7 8 9]
i would like the elements randomly re-arranged, for example:
A = [ 6 9 1
2 5 7
3 8 4]
I would like to do it without using fors to do it more efficiently.

 Accepted Answer

A_new = reshape(A(randperm(numel(A))), size(A))

More Answers (1)

KSSV
KSSV on 9 Oct 2020
Edited: KSSV on 9 Oct 2020
Read about randperm. With this you can get random indices/ numbers. Let A be your matrix.
[m,n] = size(A) ;
idx = randperm(m*n) ;
A = reshape(A(idx),m,n) ;

Categories

Community Treasure Hunt

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

Start Hunting!