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