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. :> :> I only recently discovered your newsgroup on technical questions about :> 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. :> Professor of Radiologic Physics in Radiology :> Hospital of the University of Pennsylvania :> Philadelphia, PA, 19104-4283 :> Telephone 215-662-6679 :> email joseph at rad.upenn.edu