Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# Re: Re: st: no room to add more double literals

 From Nick Cox <[email protected]> To [email protected] Subject Re: Re: st: no room to add more double literals Date Tue, 18 Jan 2011 16:02:30 +0000

In response to

> 1) if I try to input a matrix with 1,1,1,1\2,2,2,2\3,3,3,3.... it hits
> the limit as well with a different error
> message, but still pretty soon to be practical.

I may be wrenching this out of context, but I note that there is no
obvious need to spell out every value of a matrix with such simple
structure. Consider

: J(1,4,(1..20)')
1    2    3    4
+---------------------+
1 |   1    1    1    1  |
2 |   2    2    2    2  |
3 |   3    3    3    3  |
4 |   4    4    4    4  |
5 |   5    5    5    5  |
6 |   6    6    6    6  |
7 |   7    7    7    7  |
8 |   8    8    8    8  |
9 |   9    9    9    9  |
10 |  10   10   10   10  |
11 |  11   11   11   11  |
12 |  12   12   12   12  |
13 |  13   13   13   13  |
14 |  14   14   14   14  |
15 |  15   15   15   15  |
16 |  16   16   16   16  |
17 |  17   17   17   17  |
18 |  18   18   18   18  |
19 |  19   19   19   19  |
20 |  20   20   20   20  |
+---------------------+

which can be generalised for "any value of 20" (or 4 for that matter).
On the other hand, this behaviour of J() was not in the very first
release of Mata

SJ-8-3  pr0043  . . . . . Stata tip 67: J() now has greater replicating powers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
Q3/08   SJ 8(3):450--451                                 (no commands)
tip detailing Mata J() function recent enhancements

and so may not be old-fashioned enough for Sergiy. But there are other
ways to do it. Even the pedestrian

(1..20)',(1..20)',(1..20)',(1..20)'

looks a better solution to me. What am I missing?

Nick

On Tue, Jan 18, 2011 at 3:44 PM, Sergiy Radyakin <[email protected]> wrote:
> Hello Kit,
>
> On Tue, Jan 18, 2011 at 9:23 AM, Christopher Baum <[email protected]> wrote:
>> <>
>> On Jan 18, 2011, at 2:33 AM, Sergiy wrote:
>>
>>> What is the best way to define, e.g. 100000x1 matrix in the Mata code?
>>> (Another software is writing the Mata program, so I am not concerned
>>> about the amount of labor).
>>
>> Why not just define the matrix (or the vec() of the matrix) as a Stata variable and view it in Mata?
>
>
> Because it goes against the encapsulation paradigm ("a language
> mechanism for restricting access
> to some of the object's components" -- Wikipedia).
>
> My two other observations are:
> 1) if I try to input a matrix with 1,1,1,1\2,2,2,2\3,3,3,3.... it hits
> the limit as well with a different error
> message, but still pretty soon to be practical.
>
> 2) if I run the original commands without wrapping them into a
> function - everything works well
> (presumably because the literals are not stored, but rather executed
> right away).
>
>
> I have found by now the response of David Drukker from 2007 regarding
> the problem:
> http://www.stata.com/statalist/archive/2007-08/msg00149.html
> Since I need the program to be compatible with Stata 9, further
> updates will not be applicable.
>
> Thank you, Sergiy
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/