{smcl}
{hline}
help for {hi:matwrite}
{hline}

{title:MAT-file export plugin}

{p 4 4 2}{cmdab:matwrite}
[{it:anything}] {cmd:using} {it:filename} [{cmd:if} {it:exp}] [{cmd:in} {it:range}]
{cmd:[,}
	{cmdab:mat:rix}{cmd:(}{it:namelist}{cmd:)}
	{cmd:replace}
{cmd:]}

{title:Description}

{p 4 4 2}{cmd:matwrite} allows you to export data in the MATLAB MAT-file format from within
Stata. Variables as specified in {it:anything} can be exported as column vectors, and groups
of variables can be exported as matrices. Stata matrices as specified in
{cmdab:mat:rix}{cmd:(}{it:namelist}{cmd:)} are exported as matrices. 

{title:Options}

{p 4 8 2}{it:anything} can contain a {it:varlist}, as well as facilitating the export of a group of
variables as a matrix. {cmd:matwrite} identifies user specified matrices by the matrix name being
followed by a {it:varlist} contained within square brackets: {it:matrixname[varlist]}. For example,
income[y*] will export a matrix named "income" which contains all variables which begin with "y".

{p 4 8 2}{cmdab:mat:rix}{cmd:(}{it:namelist}{cmd:)} specifies the Stata matrices that will be exported
by {cmd:matwrite}. If any of the specified matrices do not exist, a warning message will be displayed, 
although an error will not be raised. 

{title:Notes}

{p 4 4 2}If {it:anything} is not specified, all variable in the open Stata dataset
will be exported as column vectors. Similarly, if {cmdab:mat:rix}{cmd:(}{it:namelist}{cmd:)} is not
specified, all Stata matrices will be exported.

{p 4 4 2}Missing values in both variables and matrices are recoded as positive infinity in MATLAB.

{p 4 4 2}String variables can not be exported as this is not allowed by the Stata plugin interface.

{p 4 4 2}Variable names and matrix names can not be longer than 19 characters as this is not
supported by the Level 4 MAT-File format. A future version of {cmd:matwrite} will support the Level 5
MAT-File format which does not impose this restriction.
 
{title:Examples}

{p 4 4 2}{inp: . matwrite using c:\matlabfile,replace}

{p 4 4 2}{inp: . matwrite var1 var2 var3 using c:\matlabfile, mat(mat1 mat2) replace}

{p 4 4 2}{inp: . matwrite var1 if var2<=10 using c:\matlabfile, mat(mat1 mat2) replace}
   
{p 4 4 2}{inp: . matwrite mymat1[var*] var1 var2 using c:\matlabfile, mat(mat1 mat2) replace}

{title:Acknowledgments}

{p 4 4 2}MATLAB is a registered trademark of The MathWorks, Inc. Sections of this code
make use of the Stata plugin interface. 

{title:Disclaimer}

{p 4 4 2}THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.

{p 4 4 2}IN NO EVENT WILL THE COPYRIGHT HOLDERS OR THEIR EMPLOYERS, OR ANY OTHER PARTY WHO
MAY MODIFY AND/OR REDISTRIBUTE THIS SOFTWARE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE
OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

{title:Author}

{p 4 4 2}Andrew Shephard, Institute for Fiscal Studies, London, UK {browse "mailto:a.shephard@ifs.org.uk"}.

