RE: how come ? (Setting Array Values)
- To: mathgroup at smc.vnet.net
- Subject: [mg41122] RE: [mg41115] how come ? (Setting Array Values)
- From: "David Park" <djmp at earthlink.net>
- Date: Sun, 4 May 2003 03:55:12 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Phuong,
The Mathematica Help for Part seems to be misleading here. It says...
"Part[expr, i, j, ? ] is equivalent to expr[[i]] [[j]]" and
"You can make an assignment like t[[i]] = value to modify part of an
expression. "
Help doesn't mention using t[[i,j,...]] = value for assignment but you can
clearly use it. So you might think it would be equivalent to the form you
tried.
The following works...
l = {{1, 2, 3}, {2, 4, 5}}
l[[2,3]] = 3
3
Part[l, 2, 3] = 5
5
But
l[[2]][[3]] = 3 (* or *)
Part[Part[l, 2], 3] = 3
give errors.
I think that is because Mathematica expects a Symbol as the first argument
of the outer Part statement. It won't search for the symbol at a depth
greater than 1. It's a feature. But since you can use the other form it is
not a serious problem.
David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/
From: Phuong [mailto:phuongdt at writeme.com]
To: mathgroup at smc.vnet.net
Hi everybody,
I am a newbie in Mathematica and began programming with it. Could
anyone explain this problem to me ?
why mathematica can't deal with
l={{1,2,3},{2,4,5}}
l[[1]][[2]]=3
and here is its error message :
Set::"setps": "\!\(l \[LeftDoubleBracket] 1 \[RightDoubleBracket]\) in
\
assignment of part is not a symbol."
but it can with
Part[l,1,2]=3