Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: mata function : coding optional argument


From   [email protected] (William Gould, Stata)
To   [email protected]
Subject   Re: st: mata function : coding optional argument
Date   Tue, 18 Apr 2006 08:10:20 -0500

AbdelRahmen El Lahga <[email protected]> writes, 

> I'm writing a mata function say: 
>
>       transmorphic matrix chak(real colvector dim1, 
>                                real colvector dim2, 
>                                | real colvector pop , real scalar b)
>       {......}
>
>
> in which "pop" and the scalar "b" are optional arguments as
> you can see above
>
> My question is how to code the optional arguments. I want that
> if user dont specifies  the vector "pop"  mata must replace it
> by a vector of ones  and similary for b.
> Following the help my solution was
>
>       nb_arg=args()
>       if (nb_arg<3) pop=J(rows(dim1),1,1)
>       if (nb_arg<4) b=1
>
> but this solution don't allow  the user to specifies the
> scalar b and omit the 3rd argument pop

What AbdelRahmen has coded is exactly right, and Abdel is also right 
that user can omit the third and fourth arguments, or the fourth, but 
not just the third.  Mata's arguments are positional, and positional 
means that if you specify 3 argments, they are the first, second, and 
third, not the first, second, and fourth.

-- Bill
[email protected]
*
*   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/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index