Re: Beginner: List Indexing and Assignment
- To: mathgroup at smc.vnet.net
- Subject: [mg94512] Re: Beginner: List Indexing and Assignment
- From: Raffy <raffy at mac.com>
- Date: Mon, 15 Dec 2008 07:45:39 -0500 (EST)
- References: <gi2ut4$a5h$1@smc.vnet.net>
a = {{1, 2, 3}, {4, 5, 6}}
"Replace all values at level 2 in matrix a that are greater than 2
with -1"
Replace[ a, x_ /; x > 2 -> -1, {2} ]
You could, if you desire that notation, write your own helper
functions:
where[m_, p_] := Position[m, p, {2}];
HoldPattern[Set[where[m_, p_], x_]] ^:= Replace[m, p -> x, {2}];
logical[m_, p_] := Replace[m, {p -> True, _ -> False}, {2}];
where[ a, x_ /; x > 6 ] = {{2, 3}};
where[ a, x_ /; x > 2 ] = -1 ==> {{1, 2, -1}, {-1, -1, -1}}
logical[ a, 3 ] = {{False, True, False}, {False, False, False}}