| Publisher: | Stata Press |
| Copyright: | 2025 |
| ISBN-13: | 978-1-59718-434-2 |
| Pages: | 1,209 |
Suggested citation:
StataCorp. 2025. Stata 19 Mata Reference Manual. College Station, TX: Stata Press.
| Intro | Introduction to the Mata manual |
[M-1] Introduction and advice
| Intro | Introduction and advice |
| Ado | Using Mata with ado-files |
| First | Introduction and first session |
| help | Obtaining help in Stata |
| How | How Mata works |
| Interactive | Using Mata interactively |
| LAPACK | Linear algebra package (LAPACK) routines |
| Limits | Limits and memory utilization |
| Naming | Advice on naming functions and variables |
| Permutation | An aside on permutation matrices and vectors |
| Returned args | Function arguments used to return results |
| Source | Viewing the source code |
| Tolerance | Use and specification of tolerances |
[M-2] Language definition
| Intro | Language definition |
| break | Break out of for, while, or do loop |
| class | Object-oriented programming (classes) |
| Comments | Comments |
| continue | Continue with next iteration of for, while, or do loop |
| Declarations | Declarations and types |
| do | do ... while (exp) |
| Errors | Error codes |
| exp | Expressions |
| for | for (exp1; exp2; exp3) stmt |
| ftof | Passing functions to functions |
| goto | goto label |
| if | if (exp)... else... |
| op_arith | Arithmetic operators |
| op_assignment | Assignment operator |
| op_colon | Colon operators |
| op_conditional | Conditional operator |
| op_increment | Increment and decrement operators |
| op_join | Row- and column-join operators |
| op_kronecker | Kronecker direct-product operator |
| op_logical | Logical operators |
| op_range | Range operators |
| op_transpose | Conjugate transpose operator |
| optargs | Optional arguments |
| pointers | Pointers |
| pragma | Suppressing warning messages |
| reswords | Reserved words |
| return | return and return(exp) |
| Semicolons | Use of semicolons |
| struct | Structures |
| Subscripts | Use of subscripts |
| Syntax | Mata language grammar and syntax |
| version | Version control |
| void | Void matrices |
| while | while (exp) stmt |
[M-3] Commands for controlling Mata
| Intro | Commands for controlling Mata |
| end | Exit Mata and return to Stata |
| lmbuild | Easily create function library |
| mata | Mata invocation command |
| mata clear | Clear Mata's memory |
| mata describe | Describe contents of Mata's memory |
| mata drop | Drop matrix or function |
| mata help | Obtain help in Stata |
| mata matsave | Save and restore matrices |
| mata memory | Report on Mata's memory usage |
| mata mlib | Create function library |
| mata mosave | Save function's compiled code in object file |
| mata rename | Rename matrix or function |
| mata set | Set and display Mata system parameters |
| mata stata | Execute Stata command |
| mata which | Identify function |
| namelists | Specifying matrix and function names |
[M-4] Categorical guide to Mata functions
| Intro | Categorical guide to Mata functions |
| Dates | Date and time functions |
| IO | I/O functions |
| Manipulation | Matrix manipulation |
| Mathematical | Important mathematical functions |
| Matrix | Matrix functions |
| Programming | Programming functions |
| Scalar | Scalar mathematical functions |
| Solvers | Functions to solve AX=B and to obtain A inverse |
| Standard | Functions to create standard matrices |
| Stata | Stata interface functions |
| Statistical | Statistical functions |
| String | String manipulation functions |
| Utility | Matrix utility functions |
[M-5] Alphabetical index to Mata functions
| Intro | Alphabetical index to Mata functions |
| abbrev() | Abbreviate strings |
| abs() | Absolute value (length) |
| adosubdir() | Determine ado-subdirectory for file |
| all() | Element comparisons |
| args() | Number of arguments |
| asarray() | Associative arrays |
| AssociativeArray() | Associative arrays (class) |
| ascii() | Manipulate ASCII and byte codes |
| uchar() | Convert code point to Unicode character |
| assert() | Abort execution if false |
| base64encode() | Encode string into Base64 format |
| blockdiag() | Block-diagonal matrix |
| bufio() | Buffered (binary) I/O |
| byteorder() | Byte order used by computer |
| C() | Make complex |
| c() | Access c() value |
| callersversion() | Obtain version number of caller |
| cat() | Load file into string matrix |
| chdir() | Manipulate directories |
| cholesky() | Cholesky square-root decomposition |
| cholinv() | Symmetric, positive-definite matrix inversion |
| cholsolve() | Solve AX=B for X using Cholesky decomposition |
| comb() | Combinatorial function |
| cond() | Condition number |
| conj() | Complex conjugate |
| corr() | Make correlation matrix from variance matrix |
| cross() | Cross products |
| crossdev() | Deviation cross products |
| cvpermute() | Obtain all permutations |
| date() | Date and time manipulation |
| deriv() | Numerical derivatives |
| designmatrix() | Design matrices |
| det() | Determinant of matrix |
| _diag() | Replace diagonal of a matrix |
| diag() | Create diagonal matrix |
| diag0cnt() | Count zeros on diagonal |
| diagonal() | Extract diagonal into column vector |
| dir() | File list |
| direxists() | Whether directory exists |
| direxternal() | Obtain list of existing external globals |
| display() | Display text interpreting SMCL |
| displayas() | Set display level |
| displayflush() | Flush terminal-output buffer |
| Dmatrix() | Duplication matrix |
| _docx*() | Generate Office Open XML (.docx) file |
| dsign() | FORTRAN-like DSIGN() function |
| e() | Unit vectors |
| editmissing() | Edit matrix for missing values |
| edittoint() | Edit matrix for roundoff error (integers) |
| edittozero() | Edit matrix for roundoff error (zeros) |
| editvalue() | Edit (change) values in matrix |
| eigensystem() | Eigenvectors and eigenvalues |
| eigensystemselect() | Compute selected eigenvectors and eigenvalues |
| eltype() | Element type, organizational type, and type name of object |
| epsilon() | Unit roundoff error (machine precision) |
| _equilrc() | Row and column equilibration |
| error() | Issue error message |
| errprintf() | Format output and display as error message |
| exit() | Terminate execution |
| exp() | Exponentiation and logarithms |
| factorial() | Factorial and gamma function |
| favorspeed() | Whether speed or space is to be favored |
| ferrortext() | Text and return code of file error code |
| fft() | Fourier transform |
| fileexists() | Whether file exists |
| _fillmissing() | Fill matrix with missing values |
| findexternal() | Find, create, and remove external globals |
| findfile() | Find file |
| floatround() | Round to float precision |
| fmtwidth() | Width of %fmt |
| fopen() | File I/O |
| fullsvd() | Full singular value decomposition |
| geigensystem() | Generalized eigenvectors and eigenvalues |
| ghessenbergd() | Generalized Hessenberg decomposition |
| ghk() | Geweke–Hajivassiliou–Keane (GHK) multivariate normal simulator |
| ghkfast() | GHK multivariate normal simulator using pregenerated points |
| gschurd() | Generalized Schur decomposition |
| halton() | Generate a Halton or Hammersley set |
| hash1() | Jenkins's one-at-a-time hash function |
| hessenbergd() | Hessenberg decomposition |
| Hilbert() | Hilbert matrices |
| I() | Identity matrix |
| inbase() | Base conversion |
| indexnot() | Find byte not in list |
| _invmat() | Inverse and pseudoinverse of a square matrix |
| invorder() | Permutation vector manipulation |
| invsym() | Symmetric real matrix inversion |
| invtokens() | Concatenate string rowvector into string scalar |
| isascii() | Whether string scalar contains only ASCII codes |
| isdiagonal() | Whether matrix is diagonal |
| isfleeting() | Whether argument is temporary |
| isreal() | Storage type of matrix |
| isrealvalues() | Whether matrix contains only real values |
| issamefile() | Whether two file paths are pointing to the same file |
| issymmetric() | Whether matrix is symmetric (Hermitian) |
| isview() | Whether matrix is view |
| J() | Matrix of constants |
| Kmatrix() | Commutation matrix |
| lapack() | Linear algebra package (LAPACK) functions |
| ldl() | Bunch–Kaufman decomposition |
| LinearProgram() | Linear programming |
| liststruct() | List structure's contents |
| Lmatrix() | Elimination matrix |
| logit() | Log odds and complementary log–log |
| lowertriangle() | Extract lower or upper triangle |
| lsesolve() | Solve Ax=c for x with equality constraints using least-squares method |
| lsglmsolve() | Solves a general Gauss–Markov linear model problem |
| lssolve() | Solve AX=B for X using least-squares method |
| lud() | LU decomposition |
| luinv() | Square matrix inversion |
| lusolve() | Solve AX=B for X using LU decomposition |
| makesymmetric() | Make square matrix symmetric (Hermitian) |
| matexpsym() | Exponentiation and logarithms of symmetric matrices |
| matpowersym() | Powers of a symmetric matrix |
| mean() | Means, variances, and correlations |
| mindouble() | Minimum and maximum nonmissing value |
| minindex() | Indices of minimums and maximums |
| minmax() | Minimums and maximums |
| missing() | Count missing and nonmissing values |
| missingof() | Appropriate missing value |
| mod() | Modulus |
| moptimize() | Model optimization |
| more() | Create –more– condition |
| mvnormal() | Compute multivariate normal distributions and derivatives |
| _negate() | Negate real matrix |
| norm() | Matrix and vector norms |
| normal() | Cumulatives, reverse cumulatives, and densities |
| optimize() | Function optimization |
| panelsetup() | Panel-data processing |
| panelsum() | Panel sums |
| pathjoin() | File path manipulation |
| Pdf∗() | Create a PDF file |
| pinv() | Moore–Penrose pseudoinverse |
| polyeval() | Manipulate and evaluate polynomials |
| printf() | Format output |
| qrd() | QR decomposition |
| qrinv() | Generalized inverse of matrix via QR decomposition |
| qrsolve() | Solve AX=B for X using QR decomposition |
| quadcross() | Quad-precision cross products |
| Quadrature() | Numerical integration |
| range() | Vector over specified range |
| rank() | Rank of matrix |
| Re() | Extract real or imaginary part |
| reldif() | Relative/absolute difference |
| rows() | Number of rows and number of columns |
| rowshape() | Reshape matrix |
| runiform() | Uniform and nonuniform pseudorandom variates |
| runningsum() | Running sum of vector |
| schurd() | Schur decomposition |
| select() | Select rows, columns, or indices |
| setbreakintr() | Break-key processing |
| sign() | Sign and complex quadrant functions |
| sin() | Trigonometric and hyperbolic functions |
| sizeof() | Number of bytes consumed by object |
| solve_tol() | Tolerance used by solvers and inverters |
| solvelower() | Solve AX=B for X, A triangular |
| _solvemat() | Solve AX=B for X |
| solvenl() | Solve systems of nonlinear equations |
| sort() | Reorder rows of matrix |
| soundex() | Convert string to soundex code |
| spline3() | Cubic spline interpolation |
| sqrt() | Square root |
| st_addalias() | Add alias variable to current Stata dataset |
| st_addobs() | Add observations to current Stata dataset |
| st_addvar() | Add variable to current Stata dataset |
| st_data() | Load copy of current Stata dataset |
| st_dir() | Obtain list of Stata objects |
| st_dropvar() | Drop variables or observations |
| st_frame*() | Data frame manipulation |
| st_global() | Obtain strings from and put strings into global macros |
| st_isalias() | Properties of alias variable |
| st_isfmt() | Whether valid %fmt |
| st_isname() | Whether valid Stata name |
| st_local() | Obtain strings from and put strings into Stata macros |
| st_macroexpand() | Expand Stata macros in string |
| st_matrix() | Obtain and put Stata matrices |
| st_numscalar() | Obtain values from and put values into Stata scalars |
| st_nvar() | Numbers of variables and observations, and dataset label |
| st_rclear() | Clear r(), e(), or s() |
| st_store() | Modify values stored in current Stata dataset |
| st_subview() | Make view from view |
| st_tempname() | Temporary Stata names |
| st_tsrevar() | Create time-series op.varname variables |
| st_updata() | Determine or set data-have-changed flag |
| st_varformat() | Obtain/set format, etc., of Stata variable |
| st_varindex() | Obtain variable indices from variable names |
| st_varname() | Obtain variable names from variable indices |
| st_varrename() | Rename Stata variable |
| st_vartype() | Storage type of Stata variable |
| st_view() | Make matrix that is a view onto current Stata dataset |
| st_viewvars() | Variables and observations of view |
| st_vlexists() | Use and manipulate value labels |
| stata() | Execute Stata command |
| stataversion() | Version of Stata being used |
| strdup() | String duplication |
| strlen() | Length of string in bytes |
| ustrlen() | Length of Unicode string in Unicode characters |
| udstrlen() | Length of Unicode string in display columns |
| strmatch() | Determine whether string matches pattern |
| strofreal() | Convert real to string |
| strpos() | Find substring in string |
| ustrpos() | Find substring in Unicode string |
| strreverse() | Reverse string |
| ustrreverse() | Reverse Unicode string |
| strtoname() | Convert a string to a Stata 13 compatible name |
| ustrtoname() | Convert a Unicode string to a Stata name |
| strtoreal() | Convert string to real |
| strtrim() | Remove blanks |
| ustrtrim() | Remove Unicode whitespace characters |
| strupper() | Convert ASCII letter to uppercase (lowercase) |
| ustrupper() | Convert Unicode string to uppercase, lowercase, or titlecase |
| subinstr() | Substitute text |
| usubinstr() | Replace Unicode substring |
| sublowertriangle() | Return a matrix with zeros above a diagonal |
| _substr() | Substitute into string |
| _usubstr() | Substitute into Unicode string |
| substr() | Extract substring |
| usubstr() | Extract Unicode substring |
| udsubstr() | Extract Unicode substring based on display columns |
| sum() | Sums |
| svd() | Singular value decomposition |
| svsolve() | Solve AX=B for X using singular value decomposition |
| swap() | Interchange contents of variables |
| Toeplitz() | Toeplitz matrices |
| tokenget() | Advanced parsing |
| tokens() | Obtain tokens from string |
| trace() | Trace of square matrix |
| _transpose() | Transposition in place |
| transposeonly() | Transposition without conjugation |
| trunc() | Round to integer |
| uniqrows() | Obtain sorted, unique values |
| unitcircle() | Complex vector containing unit circle |
| unlink() | Erase file |
| urlencode() | Convert URL into percent-encoded ASCII format |
| ustrcompare() | Compare or sort Unicode strings |
| ustrfix() | Replaces invalid UTF-8 sequences in Unicode string |
| ustrnormalize() | Normalize Unicode string |
| ustrsplit() | Split string into parts based on a Unicode regular expression |
| ustrto() | Convert a Unicode string to or from a string in a specified encoding |
| ustrunescape() | Convert escaped hex sequences to Unicode strings |
| ustrword() | Obtain Unicode word from Unicode string |
| valofexternal() | Obtain value of external global |
| Vandermonde() | Vandermonde matrices |
| vec() | Stack matrix columns |
| xl() | Excel file I/O class |
[M-6] Mata glossary of common terms
| Glossary | |
| Combined author index | |
| Combined subject index | |