Re: Applying rules to SparseArray
- To: mathgroup at smc.vnet.net
- Subject: [mg66417] Re: Applying rules to SparseArray
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Thu, 11 May 2006 05:36:12 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <e3um72$hf4$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
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 )
>
> Thanks in advance
>
Hi CoolGenie,
Use the built-in function *Normal* [1] before applying the
transformation rule (see In[3]).
In[1]:=
m = SparseArray[{{1, 1} -> 1, {1, 2} -> 2,
{3, 2} -> x}, {3, 3}]
Out[1]=
SparseArray[]
In[2]:=
m//Normal//TableForm//OutputForm
Out[2]//OutputForm=
1 2 0
0 0 0
0 x 0
In[3]:=
m = SparseArray[Normal[m] /. x -> 1]
Out[3]=
SparseArray[]
In[4]:=
m//Normal//TableForm//OutputForm
Out[4]//OutputForm=
1 2 0
0 0 0
0 1 0
Best regards,
Jean-Marc
[1] http://documents.wolfram.com/mathematica/functions/Normal