Re: Subscript assignment incompatibility??
- To: mathgroup at smc.vnet.net
- Subject: [mg71125] Re: Subscript assignment incompatibility??
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Thu, 9 Nov 2006 03:37:24 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <eisgrm$nk6$1@smc.vnet.net>
kevin_jazz wrote:
> I have another very simple problem:
> x={{1,28},{2,28}}
> Subscript[p,res] = x
>
> x[[1]]=x[[1]]
> {1,28}
>
> Subscript[p,res][[1]] = Subscript[p,res][[1]]
>
> \!\(Set::"setps" : \ "\!\(p\_res\) in assignment of part is not a
> symbol."\)
>
> So, I can't make an assignment with a variable that has a subscript??
Right, you cannot.
According to the online help, the above message is
". Generated when a part assignment is used for the value of an
expression other than a symbol.
. Part assignments are implemented only for parts of the value of a symbol."
Now, for Mathematica, a subscripted name is *not* a symbol. So you can
either change the name as in the following example:
In[1]:=
Block[{x},x[1]={0,0,0};x[1][[2]]=11;x[1]]
From In[1]:=
Set::setps: x[1] in assignment of part is not a symbol.
Out[1]=
{0,0,0}
This shows a valid part assignment.
In[2]:=
Block[{x1},x1={0,0,0};x1[[2]]=11;x1]
Out[2]=
{0,11,0}
Or use the *Symbolize* function from the package "Utilities`Notation`"
Regards,
Jean-Marc