Re: preserve neighborhood during random reordering

*To*: mathgroup at smc.vnet.net*Subject*: [mg45530] Re: preserve neighborhood during random reordering*From*: Paul Abbott <paul at physics.uwa.edu.au>*Date*: Mon, 12 Jan 2004 02:15:40 -0500 (EST)*Organization*: The University of Western Australia*References*: <btndvg$54$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

In article <btndvg$54$1 at smc.vnet.net>, Brent Pedersen <bpederse at nature.berkeley.edu> wrote: > I have an n*n Table. for example: > t1 = Table[Random[Integer, {0, 10}], {k}, {k}]; It would be better to include k in the function definition: t1[k_] := Table[Random[Real, {0, 10}], {k}, {k}]; > I want to rearrange the elements in t1 randomly (my actual t1 has real > data) such that for each entry t1[[i,j]] a random neighbor t1[[i+m,i+n]] > is chosen to replace it. Once that neighbor is chosen, it can still be > used to replace any of its other neighbors. In the reshuffling an entry > can replace itself. Currently I have the size of the neighborhood fixed > at 9 cells (-1<= m,n <= 1) but eventually, I need to extend it to 25 > (-2 <= m, n <= 2), 49, etc. Here is one way to do this. Load the DiscreteMath stub: <<DiscreteMath` (this automates the loading of andy of the DiscreteMath packages). Generate a random 5 x 5 matrix. mat = tab[5] Now compute a random permutation of this matrix mat[[RandomPermutation[5],RandomPermutation[5]]] Cheers, Paul -- Paul Abbott Phone: +61 8 9380 2734 School of Physics, M013 Fax: +61 8 9380 1014 The University of Western Australia (CRICOS Provider No 00126G) 35 Stirling Highway Crawley WA 6009 mailto:paul at physics.uwa.edu.au AUSTRALIA http://physics.uwa.edu.au/~paul