Mathematica -> making multiple variables in one go?

  • Mathematica
  • Thread starter Mugged
  • Start date
  • #1
104
0
[ANSWERED] Mathematica -> making multiple variables in one go?

Ok so lets say i know how many variables i want:

numberofvariables = 5;

and then i want to create 5 different variables, say X1, X2, X3, X4, X5 based on some formula, say:

Xi = 5+i^2

but i want this creation of variables to be done automatically, without me having to explicity type out and declare X1, X2, X3,...separately...

is this possible?

I really need to know, because say i want numberofvariables = 200, it would be a pain to have to separately declare X1 through X200...

thank you so much.

(Note: this is a radically simplified version of what i am doing...there is not need to substitute a different method to solve the above problem, i just need dynamic variable declaration?)
 
Last edited:

Answers and Replies

  • #2
Hurkyl
Staff Emeritus
Science Advisor
Gold Member
14,916
19
Are you really, really, really sure that you can't use variables such as x[1], x[2], x[3], ...?
 
  • #3
104
0
Oh i was able to create a For loop and assign X variables like that....works

thank you very much Hurkyl
 
  • #4
313
1
You can also construct the Xi symbols programmatically:

Do[Evaluate[Symbol["x" <> ToString]] = 5 + i^2, {i, 5}]
 
  • #5
I sort of have a similar issue.

So if I was to do some nonlinear fit of N objects (x1 through xN) with parameters A for each, A1, A2, A3 ... AN, but the number of objects is dependent on what data I'm looking at. Is there some way to generate those parameters/object labels depending on the number of objects I have?

So if I write:
NonlinearFit[data, formula, {A1, A2, ... AN}, {x1, x2... xN}]

I can create the formula by joining strings together and then converting to an expression, the problem I have is somehow including the A1...AN parameters and x1... xN variables given some N.

Thanks for any advice, this has been bugging me the past year.
 
  • #6
1,069
29
Create the parameters and variables almost the same way you create the formula.

In[1]:=n=12;
params=Table[ToExpression["A"<>ToString],{i,n}];
vars=Table[ToExpression["x"<>ToString],{i,n}];
(* now look at the result *)
Print[params,vars]

From In[1]:={A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12}{x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12}

Then you can write

NonlinearFit[data, formula, params, vars]

Just make certain you have not previously assigned values to any Ai or xi.
If you have assigned values to any of those you may want to look at Clear[].
 
  • #7
Thanks! That's exactly what I needed.
 

Related Threads on Mathematica -> making multiple variables in one go?

Replies
2
Views
16K
Replies
1
Views
8K
Replies
4
Views
3K
Replies
1
Views
3K
Replies
1
Views
6K
Replies
2
Views
2K
Replies
2
Views
4K
Replies
8
Views
3K
Replies
30
Views
5K
Replies
2
Views
2K
Top