Resources

Can I create a sequential variable to store output from each iteration of a loop?

0

I would like to assign a value to a variable in each iteration of a loop in my program. However, there could be quite a few iterations and I would like to automate the naming of this iteration variable. How can I do this?

asked March 1, 2013
aptech
342

2 Answers

0
accepted

You can use the varput function to create a GAUSS variable with a name from a string. Let’s assume that we would like to create the variables iteration_1, iteration_2, iteration_3, etc and fill each of these variables with random uniform numbers. We can accomplish that like this:

nvars = 5;
nobs = 10;
varname = "iteration_";

for i(1, nvars, 1);
   tmp = rndu(nobs, 1);
   varput(tmp, varname$+ftos(i, "%*.*lf", 0, 0) );
endfor;

In this code, the function ftos converts the number of the loop counter i to a string. The $+ operator combines "iteration_" string and the number from the loop counter into one string. Then varput assigns the value from tmp to a new variable (iteration_1, iteration_2, etc)

aptech
342
0

check