Re: weighting CA neighbors by distance
- To: mathgroup at smc.vnet.net
- Subject: [mg29913] Re: weighting CA neighbors by distance
- From: "Orestis Vantzos" <atelesforos at hotmail.com>
- Date: Wed, 18 Jul 2001 02:08:53 -0400 (EDT)
- Organization: National Technical University of Athens, Greece
- References: <9iomeb$i0u$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
ListCorrelate[{{1/Sqrt[2], 1, 1/Sqrt[2]}, {1, 0, 1}, {1/Sqrt[2], 1, 1/Sqrt[2]}}, A, {2, -2}, 0] does what you want. The first argument is the "negihbors matrix" you have, with 1/Sqrt[#.#]& mapped to its elements. The third argument {2,-2} took half an hour of unsuccesfull attempts to get right! A is the CA matrix ofcourse. Orestis PS.The documentation on ListConvolve and ListCorrelate leaves a lot to be desired , for such devilishly usefull functions. "Brent Pedersen" <bpederse at nature.berkeley.edu> wrote in message news:9iomeb$i0u$1 at smc.vnet.net... > I am doing some variations of cellular automata. > Using only the actual value of the neighbors in determining the value of > the current cell, I can use: > > Apply[Plus, Map[RotateRight[mat1, ##] &, nbrs]]; > > where mat1 is the matrix of values for whatever the CA is modelling. > and nbrs is a list of pairs (eg. > {{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0}, > {1,1}} for the 8 cell moore neighborhood.) defining the neighborhood I > am interested in. > > The line above sums all neighbors as they are but, I wish to weight the > neighbors > according to their distance (eg. {-1,-1} is farther away than {-1,0} > when using the > RotateRight function. > I think I may be able to do this with ListConvolve, or Inner but I can't > figure it out. > Anyone have any ideas? > >