MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Subsetting indexed variable?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg36100] Re: Subsetting indexed variable?
  • From: hartmut.wolf at t-systems.com (Hartmut Wolf)
  • Date: Wed, 21 Aug 2002 05:52:09 -0400 (EDT)
  • References: <ajajgf$9to$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

"Gareth J. Russell" <gjr2008 at columbia.edu> wrote in message news:<ajajgf$9to$1 at smc.vnet.net>...
> Hi,
> 
> I cannot seem to work out how to extract a subset of information from an
> indexed variable (without generating a full list/matrix first).
> 
> For example, suppose I define:
> 
> b[1,3] = 3
> b[2,3] = 7
> b[2,4] = 5
> 
> And I then want to get the list of all DEFINED values of b[2,_], i.e., the
> result should be {7,5}
> 
> Help appreciated!
> 
> Gareth
> 
> ==========================================================
> Dr. Gareth J. Russell
> Columbia University
> E-mail: gjr2008 at columbia.edu
> ==========================================================



Gareth,

you might look at all definitions of b:

DownValues[b]
{HoldPattern[b[1, 3]] :> 3, HoldPattern[b[2, 3]] :> 7, 
  HoldPattern[b[2, 4]] :> 5}

or only at those matching b[2,_], e.g.

Cases[DownValues[b], b[2, _], {3}]
{7, 5}

Explanation: the pattern b[2,_] matches at level 3 giving 
{b[2,3], b[2,4]} which is evaluated in turn giving {7, 5}.
Doing so is bit dangerous however, since b[2,_] also might show up at
the rhs (at this level).


If you want to get at the unevaluated definitions, then you may use

Cases[DownValues[b], d : (Verbatim[HoldPattern][b[2, _]] :> s_) :> d]
{HoldPattern[b[2, 3]] :> 7, 
 HoldPattern[b[2, 4]] :> 5}

or if you only like to see the rhs (know what you are doing), then

Cases[DownValues[b], (Verbatim[HoldPattern][b[2, _]] :> s_) :>
HoldForm[s]]
{7, 5}

If you drop the HoldForm for s, then again you'll get the results
evaluated (which doesn't matter in this example, but try with b[2, 0]
:= Print["killroy"]). Regard that matches are now at level 1.

--
Hartmut


  • Prev by Date: Fwd: RE: PDF and postscript
  • Next by Date: Re: Lists and tables
  • Previous by thread: Re: Subsetting indexed variable?
  • Next by thread: Export Problem Mathematica 4.0.1.0