Elegant syntax for multiple conditional assignment?

*To*: mathgroup at smc.vnet.net*Subject*: [mg54337] Elegant syntax for multiple conditional assignment?*From*: Scott Hemphill <hemphill at hemphills.net>*Date*: Sat, 19 Feb 2005 02:31:38 -0500 (EST)*Reply-to*: hemphill at alumni.caltech.edu*Sender*: owner-wri-mathgroup at wolfram.com

Dear Mathematica aficionados: I have several state variables, each of which is a vector of "n" elements. I would like to assign each element in each vector based on a condition which is in the corresponding position in a condition vector. To be more specific: Each of a, c, x and y is a List of Length n. cond is a List of Length n, containing True and False values What I have is old = {a, c, x, y}; code which changes a, c, x, and y new = {a, c, x, y}; What I want to do is assign to each element of a, c, x and y the old value of a, c, x or y if the corresponding element of cond is False, and the new value of a, c, x or y if the corresponding element of cond is True. I've got a method that works: t=Transpose; {a, c, x, y} = t[If[#[[1]],#[[2]],#[[3]]]& /@ t[{cond,t[new],t[old]}]]; All the transpositions and array indexing make me wonder if there's a more elegant way of expressing this. Any takers? Thanks in advance. Scott -- Scott Hemphill hemphill at alumni.caltech.edu "This isn't flying. This is falling, with style." -- Buzz Lightyear

**Follow-Ups**:**Re: Elegant syntax for multiple conditional assignment?***From:*DrBob <drbob@bigfoot.com>