Re: Problem with substitutions in SparseArray?

• To: mathgroup at smc.vnet.net
• Subject: [mg56907] Re: [mg56824] Problem with substitutions in SparseArray?
• From: arrigoni <arrigoni at itp.tu-graz.ac.at>
• Date: Tue, 10 May 2005 03:42:09 -0400 (EDT)
• References: <200505070816.EAA20188@smc.vnet.net> <6d5b1cedba1e6f5bbfe7eb5fd2f511bc@mimuw.edu.pl>
• Sender: owner-wri-mathgroup at wolfram.com

```Thank you very much for your answer

>
>
> (n = m /. HoldPattern[SparseArray[x__, {y__, {a}}]] :>
>    SparseArray[x, {y, {1}}])//InputForm
>

However, this is  not very general. If you have, for example

mm=SparseArray[{i_,i_}->a,{2,2}]
(nn = mm /. HoldPattern[SparseArray[x__, {y__, {a}}]] :>    SparseArray[x,
{y, {1}}])
Normal[nn]

RESULT:
{{a, 0}, {0, a}}

>
> n=SparseArray[ArrayRules[m]/.a->1]//InputForm
>
>
> SparseArray[Automatic, {1, 1}, 0, {1, {{0, 1}, {{1}}},
>  {1}}]
>

With this one must be even more careful: in this case the zeroes of the
matrix have been removed and you are left with a 1x1 instead of a 2x2
matrix

I tried it this way, i. e. by defining a special replacement

ReplaceSparse[ff_,rr_Rule] := (ff/.rr)/. HoldPattern[SparseArray[xx__]]:>
SparseArray @@ ({xx}/.rr)

but I don't like it very much

EXAMPLES:
ReplaceSparse[mm,a->1] //Normal
ReplaceSparse[m,a->1] //Normal

one could even think to redefine ReplaceAll in this way

Enrico

```

• Prev by Date: Re: meaning of a "*" in search string?
• Next by Date: Re: ArcTan[1/0] no result, but ArcTan[Infinity] ok. How to resolve?
• Previous by thread: Re: Problem with substitutions in SparseArray?
• Next by thread: Re: Problem with substitutions in SparseArray?