On Sat, 31 Oct 2009, Kehl Dániel wrote: > I have a realy simple question. In my script I want to use two > loops. In fact I want to make some rounding. The first loop > takes only integer values (1 to bmax), but the other should go > from a = -b/2 to a=b/2 with specified steps. I want to name the > resulting serires, but the genr function can not take names > which include "-" or ",". How can I solve this problem?
Use the "sprintf" command -- see below. > In the future I want to store the mean and the standard > deviation of the resulting series in a matrix. How is it > possible? Just set up a suitable sized matrix and write into it. > The short script reads as: > > alepes = 10 > bmax = 2 > loop for b=1..bmax > loop for (a=-b/2; a<b/2; a+=b/alepes) > genr x_$a_$b = round((Hozam-a)/b)*b+a > endloop > endloop Revised version: <script> nulldata 10 alepes = 10 bmax = 2 # dummy 'Hozam' series series Hozam = normal() # count the number of rows we need k = 0 loop b=1..bmax loop for (a=-b/2; a<b/2; a+=b/alepes) k++ endloop endloop # initialize statistics matrix matrix stats = zeros(k,2) # do the actual calculations k = 1 loop b=1..bmax j = 1 loop for (a=-b/2; a<b/2; a+=b/alepes) sprintf vname "x_%d_%d", j, b genr @vname = round((Hozam-a)/b)*b+a stats[k,1] = mean(@vname) stats[k,2] = sd(@vname) j++ k++ endloop endloop print stats </script> Allin Cottrell