I tried
Subscript[a, 0] = 1
(* 1 *)
Clear[Subscript[a, 0]]
During evaluation of Clear::ssym: Subscript[a, 0] is not a symbol or a string. >>
Clear[a]
Subscript[a, 0]
(* 1 *)
Any idea?
I tried
Subscript[a, 0] = 1
(* 1 *)
Clear[Subscript[a, 0]]
During evaluation of Clear::ssym: Subscript[a, 0] is not a symbol or a string. >>
Clear[a]
Subscript[a, 0]
(* 1 *)
Any idea?
Yes you can, with limitations.
You have at least three different ways to make an assignment to a subscripted symbol a0 :
make a rule for Subscript
make a rule for a
"symbolize" a0 using the Notation package/palette
In each case below, when I write e.g. Subscript[a, 1]
this can also be entered as a1 by typing a then Ctrl+_ then 1.
When you write:
Subscript[a, 1] = "dog";
You make an assignment to Subscript
:
DownValues[Subscript]
{HoldPattern[a1] :> "dog"}
You make a rule for a
by using TagSet
:
a /: Subscript[a, 2] = "cat";
UpValues[a]
{HoldPattern[a2] :> "cat"}
If you use the Notation palette you mess with underlying Box forms behind the scenes, allowing for assignment to OwnValues
:
Each of these can be cleared with either Unset
or TagUnset
:
Subscript[a, 1] =.
a /: Subscript[a, 2] =.
a5
and then at the last step for output output the result with a subscript, so do the majority of manipulations with identifiers like a5
?
$\endgroup$
Commented
Jan 5, 2015 at 19:00
a[5]
which makes conversion in either direction much simpler and faster. However there are places (like Module
) that actual Symbols are needed. Also, I haven't looked at the internals of the Notation palette in some years but I seem to recall that the use of Symbolize
is performing this kind of translation itself, such that Symbols are used in place of Subscripts during computation, then formatted again as Subscripts for output, so look at that before you "reinvent the wheel" as it were.
$\endgroup$
Commented
Jan 6, 2015 at 3:59
ClearAll["Global*"]
?
$\endgroup$
Commented
Jul 14, 2016 at 16:18
TagSet
method the rule is attached to e.g. a
, and if a
is in the Global context ClearAll["Global*"]
will clear that rule.
$\endgroup$
Commented
Jul 15, 2016 at 1:11
You can also do this:
<< Notation`
Symbolize[ParsedBoxWrapper[SubscriptBox["_", "_"]]]
If you want to, you can import the Notation package first, then use the Symbolize function, so you don't have to use the ParsedBoxWrapper function, and just enter _,(ctrl+_),_
. What this does, is set a pattern matching a subscripted character as a symbol. Mathematica will then treat expressions matching this form as a single variable.
This doesn't seem to affect functions that use subscripts in their definition such as the partial differential function.