Re: MapThread and If
- To: mathgroup at smc.vnet.net
- Subject: [mg68039] Re: MapThread and If
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Fri, 21 Jul 2006 05:37:31 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <e9nkro$9u3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Arkadiusz Majka wrote: > Hi, > > Of course > > MapThread[If[#1 == #2, 0, tr] &, {{1, 2, 3}, {2, 2, 4}}] > > I get > > {tr, 0, tr} > > and for > > MapThread[If[#1 == #2, 0, tr] &, {{1, 2, 3}, {2, 2, {3, 4}}}] > > I get > > {tr, 0, If[3 == {3, 4}, 0, tr]} > > How I can build in above MapThread expression information that if 'a' > is equal to any element from the list {a,b,c,d} the result is 0. In > above example we have If[3=={3,4},0,tr] what I want to be 0, because 3 > is equal to an element belonging to {3,4}. > > Thx, > > Arek > Hi Arek, What about the following expression? MapThread[If[Length[Intersection[Flatten[{#1}], Flatten[{#2}]]] > 0, 0, tr] & , {{1, 2, 3}, {2, 2, {3, 4}}}] returns {tr, 0, 0} Since Intersection works only with lists, we transform each variable in list to avoid atomic expression and then we Flatten them as one dimensional lists. HTH, Jean-Marc