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 |
Matthew Baker <matthew.baker@hunter.cuny.edu> |

To |
statalist@hsphsun2.harvard.edu |

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

Date |
Thu, 17 May 2012 17:52:41 -0400 |

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 On Thu, May 17, 2012 at 5:10 PM, Brendan Halpin <brendan.halpin@ul.ie> wrote: > On Thu, May 17 2012, Matthew Baker wrote: > >> Dear listers: >> >> I have a problem in which I am trying to populate the elements of >> a pointer with the results of a function. The problem is, the function >> is void and returns its results through an argument, which makes >> getting results into a pointer nontransparent. As a simple example, >> consider the following: > > Perhaps I misunderstand your purpose: I assume you want a vector of > results, not necessarily pointers to a result. > > This code achieves that: > > /* Begin example */ > clear all > mata > void example(A,B,Ab) Ab=A*B > > P=J(3,1,0) // <--- 0 not NULL > > Ab = . // <--- needs to exist > > for (i=1;i<=3;i++) { > example(i,i,Ab) > > P[i]=Ab // <--- No "&" > > } > > /* Display results */ > > for (i=1;i<=3;i++) { > P[i] // <--- no need to dereference > } > end > /* end example */ > > > Regards, > > Brendan > -- > Brendan Halpin, Department of Sociology, University of Limerick, Ireland > Tel: w +353-61-213147 f +353-61-202569 h +353-61-338562; Room F1-009 x 3147 > mailto:brendan.halpin@ul.ie ULSociology on Facebook: http://on.fb.me/fjIK9t > http://teaching.sociology.ul.ie/bhalpin/wordpress twitter:@ULSociology > * > * 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/ -- Dr. Matthew J. Baker Department of Economics Hunter College and the Graduate Center, CUNY * * 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/

**Follow-Ups**:**Re: st: Mata void functions and pointers***From:*"Brian P. Poi" <bpoi@stata.com>

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

**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)

- Prev by Date:
**Re: st: specify base year for interacted factor variable.** - 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):