# Re:st: how to input a numlist into a matrix

 From "Nick Cox" To Subject Re:st: how to input a numlist into a matrix Date Fri, 6 Sep 2002 17:32:50 +0100

```Radu Ban <rban@nber.org> wrote

> For a program, I want to input a numerical list into a matrix.
> I want to store the list in a local so that I can modify it easily.
Namely,
> I'm looking at something like:
>
>     local nlist "10(5)90 91(1)99 99.1(0.1)99.9 99.91(0.01)99.99"
>
> but then, if I use:
>
>     tokenize "`nlist'"
>
> and try to see if i'm doing the right thing by:
>
>     di `1'
>
> i get an invalid syntax error.
> Furthermore, I'm not sure how to get the size of the numlist so that
I can
> initialize my matrix with:
>
>     matrix A = J(1, size_of_numlist, 0)
>
> Can anyone give me some suggestions?

First, -tokenize- does not know or care that your input is a numlist.
It just chops it blindly into pieces of text, parsing on spaces, as
you specified no alternative. After -tokenize- local macro 1
contains

10(5)90

which you could -display- but only by forcing the interpretation
as a string:

di "`1'"

But that's neither here nor there. What you want can be done first
through -numlist-

numlist "`nlist'"

which leaves behind the expanded numlist, so we can count elements

local nn : word count `r(numlist)'

and then initialise the matrix

mat A = J(1,`nn',0)

and then replace element by element

tokenize `r(numlist)'

forval i = 1/`nn' {
mat A[1,`i'] = ``i''
}

Nick
n.j.cox@durham.ac.uk

*
*   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/
```