Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: st: do loops and mata
From
<[email protected]>
To
<[email protected]>
Subject
RE: st: do loops and mata
Date
Thu, 13 Mar 2014 14:36:17 +0000
Thanks again Nick. I'll persevere using the old command structure
The reason I need the sequence of matrices is that my colleagues and I are writing a paper that involves decomposing the contribution of labour market transition probabilities to changes in the labour market stocks. After some algebra this essentially involves multiplying the sequence of transition probability matrices from t= 1 to t=t. So I need to refer specifically to each transition matrix at each period t and loop this because the calculation will be different at each t (involve a different set of matrices)
Hope that makes things a little more transparent. Let me know if mata ever gets macros
Jonathan
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Nick Cox
Sent: 13 March 2014 14:10
To: [email protected]
Subject: Re: st: do loops and mata
The short answer is that there is no exact Stata equivalent, because Mata as such does not have macros. But although you did not specify an exact Mata equivalent, I guess the longer answer would depend on what you want to do with these matrices. It could be that you need something deeper, e.g. pointers or structures.
Indeed, although it's always fair just to ask about language details as a matter of curiosity, I remain very puzzled why you want to do this. I've never wanted to do anything like this in Mata: that means no more than it says, and can be put down to narrowness of my experience, but it's why I am puzzled.
Nick
[email protected]
On 13 March 2014 13:48, <[email protected]> wrote:
> Dear Nick
>
> Thanks for the quick response. The commands is indeed almost
> equivalent to vec (except I need to go from a 39X4 matrix to 39 2 by
> 2 matrices rather than a column vector ) but I still need a loop to
> extract the 39 separate matrices and label them differently
>
> I can do this in the old matrix sequence using the commands
>
> mkmat ee eu ue uu, matrix(P)
> matrix list P
>
> local i=1
> while `i'<=rowsof(P) {
> matrix P`i'= P[`i',1...] /* loops to give 39 different 1 by 4 matrices of transition probabilities */
> local i=`i'+1
> }
>
> matrix list P1
> matrix list P39
>
> but I was interested in doing the mata equivalent
>
> thanks again
>
> Jonathan Wadsworth
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Nick Cox
> Sent: 13 March 2014 12:49
> To: [email protected]
> Subject: Re: st: do loops and mata
>
> This looks like a way of reinventing -stack-. Am I wrong?
>
> Nick
> [email protected]
>
>
> On 13 March 2014 12:34, <[email protected]> wrote:
>
>> As a novice to mata I'm trying to generate a set of 39 matrices using
>> a loop - essentially extracting each row of a larger matrix P
>> sequentially and then transforming the vector into a matrix using the
>> rowshape command
>>
>> I've got as far as this - which does indeed scroll through a matrix P
>> 39 times and extract a row at a time and writes to a mtrix Pi, but
>> then it overwrites the matrix Pi each time so that I'm left with just
>> one matrix called Pi at the end of the loop instead of 39 matrics
>> called P1--P39
>>
>> Does anyone know how to adapt the code below to generate and store 39 different matrices named p1, p2, ..p39 ?
>
>> mata
>>
>>
>> P = st_data( ., ("ee", "eu" ,"ue", "uu") ) P
>>
>> for ( i=1; i<=rows(P) ;i++) {
>>
>> Pi= P[i,.]
>> Pi
>>
>> xi=rowshape( Pi, 2)
>> xi
>>
>> }
>>
>> end
>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/faqs/resources/statalist-faq/
> * http://www.ats.ucla.edu/stat/stata/
>
> Please access the attached hyperlink for an important electronic
> communications disclaimer: http://lse.ac.uk/emailDisclaimer
>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/faqs/resources/statalist-faq/
> * http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/
Please access the attached hyperlink for an important electronic communications disclaimer: http://lse.ac.uk/emailDisclaimer
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/