Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: clearing a variable with a dummy subscript
Replies: 5   Last Post: May 21, 2012 5:59 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Christoph Lhotka

Posts: 39
Registered: 2/9/12
Re: clearing a variable with a dummy subscript
Posted: May 21, 2012 5:59 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Hello,

a workaround could be to delete just the entries of DownValues
which contain the symbol u.

To demonstrate I add to your example

Subscript[u, k_] := k; Subscript[u, 2]
2

another one of similar form:

Subscript[v, k_] := k; Subscript[v, 2]
2

Here are the values stored in the down values list of subscript:

DownValues[Subscript]

{HoldPattern[Subscript[v, k_]] :> k, HoldPattern[Subscript[u, k_]] :> k}

To delete definitions made just to u use something like

DownValues[Subscript] = Select[DownValues[Subscript], FreeQ[#, u,
\[Infinity]] &]
{HoldPattern[Subscript[v, k_]] :> k}

Now the definition for u_k is deleted

Subscript[u, 2]
Subscript[u, 2]

while the definition for v_k is still present

Subscript[v, 2]
2

To this end you could define something like:

myClear[x_Symbol] := Block[{},
DownValues[Subscript] = Select[DownValues[Subscript], FreeQ[#, x,
\[Infinity]] &]];

which works as expected:

myClear[v];Subscript[v,2]
Subscript[v,2]

Hope that helps,

Christoph



On 05/20/2012 08:34 AM, Peter Breitfeld wrote:
> Andre Hautot wrote:
>

>> Hi !
>> Here is something very simple I don't understand :
>>
>> f[x_] := x; f[2] (*A function*)
>> 2
>>
>> Clear[f]; f[2] (*The same perfectly cleared as expected*)
>> f[2]
>>
>>
>> Subscript[u, k_] := k; Subscript[u, 2] (*u with subscript k_
>> entered via the palette*)
>> 2
>>
>> Clear[u]; Subscript[u, 2] (*I found no way to clear u; a
>> suggestion ?)
>> 2
>>
>> Thanks in advance,
>>
>> ahautot
>>
>>

> The values of supcripted Variables are not associated with u, but to
> Subscript:
>
> Subscript[u,2]=123
>
> DownValues[u] returns: {}
>
> DownValues[Subscript] returns: {HoldPattern[u_2]:>123}
>
> So to Clear, you must call:
>
> Clear[Subscript]
>
> (but then *all* subscripted variables are cleared)
>






Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.