Re: SparseArray
- To: mathgroup at smc.vnet.net
- Subject: [mg109117] Re: SparseArray
- From: Albert Retey <awnl at gmx-topmail.de>
- Date: Mon, 12 Apr 2010 23:05:05 -0400 (EDT)
- References: <hputq9$lhm$1@smc.vnet.net>
Am 12.04.2010 12:48, schrieb Mala Jozsef:
> Hi, I would like to use SparseArray for large matrices and would like
> to use members of a list when giving values to the entries.Here is a
> simple example: l=={1}; SparseArray[{i_,i_}-> l[[i]],{1,1}]
>
> Part::pspec: Part specification i is neither an integer nor a list of
> integers. SparseArray[< 1 >,{1,1}]
>
> In fact it works if there are at most three list in the definition.
> Is there a solution without error messages? Thanks, Jozsef
>From the documenation:
With rules Subscript[pos, i]:>Subscript[val, i] the Subscript[val, i]
are evaluated separately for each set of indices that match
Subscript[pos, i].
So using RuleDelayed (:>) instead of just Rule (->) will prevent
evaluation of l[[i]] with a symbolic value for i which is the reason for
the error message:
SparseArray[{i_, i_} :> l[[i]], {1, 1}]
hth,
albert