3
$\begingroup$

I'm not sure I understand the role of subscripts and superscripts in the Mathematica language. For me, the expression:

v={Subscript[v, x],Subscript[v, y],Subscript[v, z]}

is legitimate (where I will have used Ctrl+- to visually enter the subscripts actually). However, for Mathematica it isn't (I get "recursion depth of 1024 exceeded" error). Similarly if I define:

v={a,b,c}
Subscript[v,x]

Then I get in return:

Out= Subscript[{a, b, c}, x]

So what do subscripts exist for if I cannot differentiate between variables that have the same "letter" but different subscripts (I.e. Subscript[v,x] and Subscript[v,y])? The same goes for superscripts I imagine.

Thank you!

$\endgroup$
9
  • $\begingroup$ Have you seen Indexed[]? $\endgroup$ Jul 24, 2015 at 15:06
  • 1
    $\begingroup$ @MichaelE2 Exactly. I'm wondering what sub/superscripts are designed to do in Mathematica such that I don't try to "fit" them for a use they're not meant for. $\endgroup$ Jul 24, 2015 at 15:45
  • 3
    $\begingroup$ I think they were designed to deliberately confuse newbies. $\endgroup$
    – george2079
    Jul 24, 2015 at 15:45
  • 3
    $\begingroup$ Subscripts are for typesetting only; avoid them for most if not all programming endeavors. See also this FAQ, bullet 2. If you an unstoppable, strong urge to use them, have a look at the Notation package. $\endgroup$ Jul 24, 2015 at 16:43
  • 1
    $\begingroup$ @space_voyager I use them for formatting, e.g. they're convenient to use when generating log-tickmarks to get $10^0, 10^1, 10^2, ...$. Think of them as something that formats in a certain way but has absolutely no builtin meaning otherwise. $\endgroup$
    – Szabolcs
    Jul 24, 2015 at 16:56

1 Answer 1

1
$\begingroup$

I think the problem in your first line of code is that you're trying to set v to a structure which contains v, hence the recursion issue. Mathematica is indeed able to differentiate variables of the same letter and different subscripts. Note Subscript[v, x] == Subscript[v, y] evaluates False and

Subscript[v, x] = 5;
Subscript[v, y] = 4;
Subscript[v, x]
Subscript[v, y] 

will produce the output

5
4

So they do exist for both formatting and differentiating similar variables, they just require some care to use.

$\endgroup$
1
  • $\begingroup$ Thanks but see my answer to @MichaelE2 my question isn't about this specifically. But thank you anyway. $\endgroup$ Jul 24, 2015 at 15:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.