Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I can do

Symbol["foobar"]

to create a symbol foobar. How to create a symbol $\theta_1$?

Symbol[Subscript[\[Theta], 1]]

doesn't work.

share|improve this question
    
Subscript[\[Theta], 1] = 20 works. –  drN Oct 27 '12 at 17:27
    
I know; Do this fact help answer the question? Or do you mean define the symbol by assigning a value? How to create the symbol without having to assign it an arbitrary value at the same time? –  Problemaniac Oct 27 '12 at 17:34
    
I could create a symbol without assigning a value to it with Subscript[\[Theta], 1]. Beyond that I am unsure what you want to do with the symbol. –  drN Oct 27 '12 at 17:40
3  
Have you seen this?: mathematica.stackexchange.com/questions/1004/… –  David Carraher Oct 27 '12 at 17:44
1  
How about the Notation package? –  Sjoerd C. de Vries Oct 27 '12 at 18:23
add comment

1 Answer 1

up vote 4 down vote accepted

Although your question is stated clear, I'm still wondering whether you understood, that Subscript[\[Theta], 1] is not a symbol. It's a box-structure! Therefore, what you do when you assign it a value like

Mathematica graphics

is, that you don't assign a value to some indexed variable x. No, you assign a value (a DownValue) to Subscript

Mathematica graphics

Let's assume I can guess that you like to use some indexed variable in your code then you should consider to work with the Notation package as already pointed out in the comments.

You can, after loading the Notation package, define a symbol like pattern which you want to use for a indexed variable. So for instance

Mathematica graphics

Note, that the parameter is x subscript Blank[]!

Needs["Notation`"]
Symbolize[ParsedBoxWrapper[SubscriptBox["x", "_"]]]

If you now look at InputForm[Subscript[x, 1]] you see, that the notation package transforms this into valid symbol-name only consisting of letters

Mathematica graphics

At this point you could use ToExpression to define a vector

Table[ToExpression["Subscript[x, " <> ToString[i] <> "]"], {i, 10}]

and the moment you evaluate this you have your new variables

Names["x\[UnderBracket]Subscript\[UnderBracket]*"]
(*
{"x\[UnderBracket]Subscript\[UnderBracket]1", 
"x\[UnderBracket]Subscript\[UnderBracket]10", 
"x\[UnderBracket]Subscript\[UnderBracket]2", 
"x\[UnderBracket]Subscript\[UnderBracket]3", 
"x\[UnderBracket]Subscript\[UnderBracket]4", 
"x\[UnderBracket]Subscript\[UnderBracket]5", 
"x\[UnderBracket]Subscript\[UnderBracket]6", 
"x\[UnderBracket]Subscript\[UnderBracket]7", 
"x\[UnderBracket]Subscript\[UnderBracket]8", 
"x\[UnderBracket]Subscript\[UnderBracket]9"}
*)
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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