rearrange matrix elements randomly

8 次查看(过去 30 天)
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.

采纳的回答

Ameer Hamza
Ameer Hamza 2020-10-9
A_new = reshape(A(randperm(numel(A))), size(A))

更多回答(1 个)

KSSV
KSSV 2020-10-9
编辑:KSSV 2020-10-9
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) ;

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by