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]

From |
"Brian P. Poi" <bpoi@stata.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: Mata void functions and pointers |

Date |
Thu, 17 May 2012 17:25:59 -0500 |

On 05/17/2012 04:52 PM, Matthew Baker wrote:

Brendan (and others): I should have been more clear! I would certainly prefer to use a vector to collect the elements, but the objects I'm collecting are of unknown dimension which is not known in advance, so perhaps I should have used an example like: /* Begin example */ clear all mata void example(A,B,Ab) Ab=J(A+round(3*runiform(1,1)),B,1) P=J(3,1,NULL) for (i=1;i<=3;i++) { example(i,i,Ab=.) Ab P[i]=&Ab } /* display results */ for (i=1;i<=3;i++) *P[i] end /* end example */ I have thought about trying to readjust the dimensions of the vector every time it is a little different, but this seems kind of clumsy and I was hoping for a better alternative. Thanks again! Matt Baker

Matt, Here is one solution where I took the liberty of writing a second function that returns a matrix based on the third argument of your example() function: clear all mata void example(A,B,Ab) Ab=J(A+round(3*runiform(1,1)),B,1) real matrix e2(real scalar A, real scalar B) { real matrix Ab example(A,B,Ab) return(Ab) } void main() { pointer(real matrix) rowvector P P = J(3,1,NULL) for(i=1;i<=3;++i) { P[i] = &(e2(i,i)) } for(i=1; i<=3; ++i) { P[i] *P[i] } } main() end -- Brian Poi -- bpoi@stata.com * * 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/

**References**:**st: Mata void functions and pointers***From:*Matthew Baker <matthew.baker@hunter.cuny.edu>

**Re: st: Mata void functions and pointers***From:*brendan.halpin@ul.ie (Brendan Halpin)

**Re: st: Mata void functions and pointers***From:*Matthew Baker <matthew.baker@hunter.cuny.edu>

- Prev by Date:
**Re: st: Mata void functions and pointers** - Next by Date:
**Re: st: Mata void functions and pointers** - Previous by thread:
**Re: st: Mata void functions and pointers** - Next by thread:
**Re: st: Mata void functions and pointers** - Index(es):