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/