Azzera filtri
Azzera filtri

rearrange matrix elements randomly

17 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Ameer Hamza
Ameer Hamza il 9 Ott 2020
A_new = reshape(A(randperm(numel(A))), size(A))

Più risposte (1)

KSSV
KSSV il 9 Ott 2020
Modificato: KSSV il 9 Ott 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) ;

Categorie

Scopri di più su Creating and Concatenating 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!

Translated by