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?
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)