Mathematica Mathematica -> making multiple variables in one go?

AI Thread Summary
In Mathematica, users can dynamically create multiple variables using loops and symbolic expressions. For instance, a For loop can be employed to generate variables like X[i] automatically. Additionally, the use of `Symbol` and `ToString` allows for the programmatic construction of variable names based on a specified number. For nonlinear fitting, parameters and variables can also be generated dynamically using `Table` to create lists of symbols. This approach simplifies the process of handling a large number of variables and parameters in mathematical computations.
Mugged
Messages
103
Reaction score
0
[ANSWERED] Mathematica -> making multiple variables in one go?

Ok so let's 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:
Physics news on Phys.org
Are you really, really, really sure that you can't use variables such as x[1], x[2], x[3], ...?
 
Oh i was able to create a For loop and assign X variables like that...works

thank you very much Hurkyl
 
You can also construct the Xi symbols programmatically:

Do[Evaluate[Symbol["x" <> ToString]] = 5 + i^2, {i, 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.
 
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[].
 
Thanks! That's exactly what I needed.
 

Similar threads

Replies
2
Views
3K
Replies
5
Views
3K
Replies
4
Views
5K
Replies
3
Views
3K
Replies
1
Views
4K
Replies
26
Views
3K
Replies
8
Views
5K
Replies
2
Views
307
Replies
1
Views
389
Back
Top