Re: Telling Mathematica that a symbol is going to be a List?

• To: mathgroup at smc.vnet.net
• Subject: [mg50822] Re: Telling Mathematica that a symbol is going to be a List?
• From: Paul Abbott <paul at physics.uwa.edu.au>
• Date: Wed, 22 Sep 2004 04:52:00 -0400 (EDT)
• Organization: The University of Western Australia
• References: <ciqvop\$in9\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```In article <ciqvop\$in9\$1 at smc.vnet.net>,
AES/newspost <siegman at stanford.edu> wrote:

> I want to define a function containing parameters that are going to be
> elements in a list, e.g. something like
>
>   m := { { d[[1]], 0, 0}, {0, d[[2]], 0}, {0, 0, d[[3]]}
>
> but not define the list of values of  d  until later (and not put the
> parameters in as explicit arguments of  m  just to keep the appearance
> less cluttered and typing easier).
>
> If I then give an input line
>
>     m /. {d -> {d1, d2, d3} } // MatrixForm
>
> I get "Part::partd" errors -- but the matrix then displays correctly.
>
> I can of course just Off[] the errors -- but is there a better way.

Since m is a _function_ containing parameters that are going to be
elements in a list, why not write

m[d_] := {{d[[1]], 0, 0}, {0, d[[2]], 0}, {0, 0, d[[3]]}}

and then use

m[{d1, d2, d3}]

For this particular example,

m[d_] := DiagonalMatrix[d]

is simpler.

Cheers,
Paul

--
Paul Abbott                                   Phone: +61 8 6488 2734
School of Physics, M013                         Fax: +61 8 6488 1014
The University of Western Australia      (CRICOS Provider No 00126G)
35 Stirling Highway
Crawley WA 6009                      mailto:paul at physics.uwa.edu.au
AUSTRALIA                            http://physics.uwa.edu.au/~paul

```

• Prev by Date: Re: 3D graph with assumptions
• Next by Date: Re: How to simplify to a result that is real
• Previous by thread: Re: Telling Mathematica that a symbol is going to be a List?
• Next by thread: Re: Telling Mathematica that a symbol is going to be a List?