try e.g.
scalar ng = 63
forval i=1/`=ng' {
// code
noi di " `i'. " _c
}
tom
On Dec 24, 2007 12:15 PM, <[email protected]> wrote:
> I would like to create a loop from 1 to a number defined by a scalar, but:
> . forvalues 1/ng {
> 2. mat p=inv((r1+vu)/ns[`i'])*r1
> 3. mat q=r2*(idd-p)
> 4. mat xtilde`i' = xmean*p +mux3*(idd-p)+dz*q
> 5. }
> invalid syntax
> r(198);
>
> However, ng = 63 so that the following works:
> . forvalues 1/63 {
> 2. mat p=inv((r1+vu)/ns[`i'])*r1
> 3. mat q=r2*(idd-p)
> 4. mat xtilde`i' = xmean*p +mux3*(idd-p)+dz*q
> 5. }
>
> Anything shorter than...?
> local i = 0
> while `i' < ng {
> 2. local i = `i' + 1
> 3. mat p=inv((r1+vu)/ns[`i'])*r1
> 4. mat q=r2*(idd-p)
> 5. mat xtilde`i' = xmean*p +mux3*(idd-p)+dz*q
> 6. }
>
> Merry Xmas,
> Nicola
>
> *
> * For searches and help try:
> * http://www.stata.com/support/faqs/res/findit.html
> * http://www.stata.com/support/statalist/faq
> * http://www.ats.ucla.edu/stat/stata/
>
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/