MATLAB: Swapping elements in matlab

swapping elements

How would I swap elements randomly in matlab? E.G I have a matrix M=Randi(3,10); and I want to swap its elements/cells around randomly.

Best Answer

M=randi(3,10);
M can then be linear indexed by the set [1,30] since there are 30 elements. So you could get a RANDom PERMnutation of that by using RANDPERM.
idx = randperm(30)
Then
Mnew = M([idx]);
and shape up Mnew
Mnew = reshape(Mnew,3,10)