Clear Filters
Clear Filters

rearrange matrix elements randomly

17 views (last 30 days)
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

Ameer Hamza
Ameer Hamza on 9 Oct 2020
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

Find more on Creating and Concatenating Matrices 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!