Re: Did something change?
- To: mathgroup at smc.vnet.net
- Subject: [mg58121] Re: [mg58109] Did something change?
- From: Andrzej Kozlowski <andrzej at akikoz.net>
- Date: Sun, 19 Jun 2005 03:43:24 -0400 (EDT)
- References: <200506181008.GAA08878@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 18 Jun 2005, at 19:08, Ronald Bruck wrote: > > Recently I created a list of several matrices, something like > > Do[F[i] = IdentityMatrix[8]; F[i][[1,3]] = 7, {i,10}] > > and was surprised to get the message that F[i] wasn't a symbol. I'm > pretty sure code similar to that worked prior to Mathematica 5. Did > something change? > > I've also tried Symbolize[F[i]] in that loop, but it doesn't help; > Mathematica refuses to access part [[1,3]] of F[i], claiming F[i] > isn't > a symbol. > > How are you supposed to set the individual values of a matrix if you > can't do this? This is an EXTREMELY unhelpful "feature". > > --Ron Bruck > > This is the way Set and Part work in Mathematica work and always have done. One way to deal with this type of problem is to use ReplacePart instead of Part: Do[F[i] = IdentityMatrix[8]; F[i] = ReplacePart[F[i], 7, {1, 3}], {i, 10}] or, if you really want to use Set and Part as in your original example you have to introduce a temporary symbol, e.g.: Do[F[i] = IdentityMatrix[8]; Block[{B = F[i]}, B[[1, 3]] = 7; F[i] = B], {i, 10}] Andrzej Kozlowski Chiba,Japan
- References:
- Did something change?
- From: Ronald Bruck <bruck@math.usc.edu>
- Did something change?