Re: Applying rules to SparseArray

• To: mathgroup at smc.vnet.net
• Subject: [mg66414] Re: [mg66360] Applying rules to SparseArray
• From: Adriano Pascoletti <pascolet at dimi.uniud.it>
• Date: Thu, 11 May 2006 05:36:00 -0400 (EDT)
• References: <200605110613.CAA17020@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```On 11 mag 2006, at 08:13, CoolGenie wrote:

> Hi!
> Let's say I've a matrix like this one:
> m=SparseArray[ {{1, 1} -> 1, {1, 2} ->2, {3, 2} -> x}, {3, 3} ];
> which looks like this in MatrixForm:
> 1 2 0
> 0 0 0
> 0 x 0
> where 'x' is a variable coefficient. Is there any way to apply a rule
> {x->1} to this array? ( m/.{x->1} doesn't work )
>
>

This defines the matrix

In[56]:=
m=SparseArray[ {{1, 1} -> 1, {1, 2} ->2, {3, 2} -> x}, {3, 3} ];
ArrayRules[m]

Out[57]=
{{1,1}\[Rule]1,{1,2}\[Rule]2,{3,2}\[Rule]x,{_,_}\[Rule]0}

then replace x in ArrayRules

In[58]:=
SparseArray[ArrayRules[#]/.{x\[Rule]1},Dimensions[#]]&@m
ArrayRules[%]

Out[58]=
SparseArray[<\[InvisibleSpace]3\[InvisibleSpace]>,{3,3}]

Out[59]=
{{1,1}\[Rule]1,{1,2}\[Rule]2,{3,2}\[Rule]1,{_,_}\[Rule]0}