Re: possible bug in Mathematica?

• To: mathgroup at smc.vnet.net
• Subject: [mg26207] Re: possible bug in Mathematica?
• From: Pavel.Pokorny at vscht.cz
• Date: Sat, 2 Dec 2000 02:10:36 -0500 (EST)
• Organization: Prague Institute of Chemical Technology
• References: <8ur0ag\$qsq@smc.vnet.net> <aEKQ5.1281\$b16.93819@ralph.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Nobody has mentioned ReplacePart.

--
Pavel Pokorny
Math Dept, Prague Institute of Chemical Technology
http://staff.vscht.cz/mat/Pavel.Pokorny

H Shou <H.Shou at cs.cf.ac.uk> wrote:
: Hi, Peter:

: It is not a bug!

: You should use matrix[[1,1]] instead of matrix[[1]][[1]] .

: In[1]:=
: matrix = Table[0, {2}, {3}]

: Out[1]=
: {{0, 0, 0}, {0, 0, 0}}

: In[2]:=
: matrix[[1, 1]] = 11

: Out[2]=
: 11

: In[3]:=
: matrix

: Out[3]=
: {{11, 0, 0}, {0, 0, 0}}

: It is ok!

: Peter Joseph wrote:

:> I am running Mathematica version 4.0 under Windows 98 2nd edition.
:>
:> Mathematica.  I am not sure if you consider the following problem to be a
:> question or a bug report.  I have already submitted this to Wolfram as a
:> bug report.
:>
:> (* The problem is how to redefine or recalculate the elments of a list
:> with more than one dimension, such as a matrix
:> First, demonstrate that there is no such problem with a simple list *)
:>
:> In[8]:= vector = Table[0, {2}]
:> Out[8]= {0, 0}
:>
:> (* next redefine the values in the vector *)
:>
:> In[9]:=vector[[1]] = 1
:> Out[9]=1
:>
:> In[10]:=vector[[2]] = 2
:> Out[10]=2
:>
:> In[11]:=vector
:> Out[11]={1, 2}
:>
:> (* That was successful, now try exactly the same technique with a matrix
:> *)
:>
:> In[12]:=matrix = Table[0, {2}, {3}]
:> Out[12]={{0, 0, 0}, {0, 0, 0}}
:>
:> In[13]:=matrix[[1]][[1]] = 11
:> Set::"setps": "\!\(matrix \[LeftDoubleBracket] 1 \[RightDoubleBracket]\)
:> in \
:> assignment of part is not a symbol."
:> Out[13]=11
:>
:> In[14]:=matrix
:> Out[14]={{0, 0, 0}, {0, 0, 0}}
:>
:> (* evidently, Mathematica interprets the meaning of vector[[1]] very
:> differently than matrix[[1]][[1]]
:> It considers the vector elements to be variables that can be redefined,
:> while it considers the matrix elements constants that are
:> protected.  I tried using Unprotect in various forms, but that did not
:> work.
:>
:> So the question is, how does one do computations on lists which are nested
:> more than one level deep?? *)
:>
:> Peter M. Joseph, Ph.D.
:> Hospital of the University of Pennsylvania