Services & Resources / Wolfram Forums
MathGroup Archive
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

Re: Did something change?

  • To: mathgroup at
  • Subject: [mg58121] Re: [mg58109] Did something change?
  • From: Andrzej Kozlowski <andrzej at>
  • Date: Sun, 19 Jun 2005 03:43:24 -0400 (EDT)
  • References: <>
  • Sender: owner-wri-mathgroup at

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,  

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


  • Prev by Date: Re: plot command
  • Next by Date: Re: Intersection @ Complement
  • Previous by thread: Re: Did something change?
  • Next by thread: Re: Did something change?