MathGroup Archive 2005

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

Search the Archive

Re: Nested Lists, Definition and Evaluation.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg59761] Re: [mg59729] Nested Lists, Definition and Evaluation.
  • From: "David Park" <djmp at earthlink.net>
  • Date: Sat, 20 Aug 2005 03:13:52 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

When making assignments to arrays you have to use

b[[1,1,1,1]]=2

I often write

Part[b,1,1,1,1]=2

just because it is clearer and gets rid of extra brackets.

With the Part assignment, Mathematica expects the first argument, in this
case 'b', to be a Symbol.

b[[1,1]][[1,1]] is equivalent to Part[Part[b, 1, 1], 1, 1] and the first
argument is not a Symbol.

b[[1,1]][[1,1]] is perfectly all right for retrieving values but not for
setting values.

I'm sure that this is a trap that many of us have fallen into.

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/


From: Alexander [mailto:beginning.physst at mail.ru]
To: mathgroup at smc.vnet.net


Hello!

Here is simple example of defining list:

b = Table[Symbol["a" <> ToString[i] <> ToString[j]], {i, 2}, {j, 2}];
a11 = IdentityMatrix[2];
b[[1,1]][[1,1]]

Output will be number 1.

Then we type another command:
b[[1,1]][[1,1]]=2

wich cause error message.

If we type ?b the structure of b can be seen:
Global`b
b = {{a11, a12}, {a21, a22}}

And I wonder, how to change elements of aij from b? It's interesing
question about how mathematica think things and how evaluate them.

So, the questions are:
1) Why code above produce error message?
2) What difference between b[[1,1]][[1,1]] and
b[[1,1,1,1]] notation?

Here is an example concerning the second  question:
This code doesn't produce an error:

a11 = IdentityMatrix[2];
b = Table[Symbol["a" <> ToString[
    i] <> ToString[j]], {i, 2}, {j, 2}];
b[[1, 1, 1, 1]] = 3

but this does:

a11 = IdentityMatrix[2];
b = Table[Symbol["a" <> ToString[
    i] <> ToString[j]], {i, 2}, {j, 2}];
b[[1, 1]][[1, 1]] = 3

Why?

Sorry for my obscure speech, and thanks for your answers!



  • Prev by Date: Re: How to specify boundary conditions on all 4 sides of a plate for a steady state heat equation (PDE) using NDSolve? (Laplace equation)
  • Next by Date: Random sampling of an arbitrary distribution
  • Previous by thread: Re: Nested Lists, Definition and Evaluation.
  • Next by thread: Re: Nested Lists, Definition and Evaluation.