»  Home »  Products »  Features »  Mata—Stata's serious programming language
Order Stata

Mata—Stata's serious programming language

Mata is a programming language that looks a lot like Java and C, but adds direct support for matrix programming. Mata is a compiled language, which makes it fast. You can use Mata interactively when you want to quickly perform matrix calculations, or you can use Mata when you need to write complex programs. Mata has the structures, pointers, and classes that you expect in your programming language. In fact, Mata is Stata's development language. Most new features of Stata are written in Mata. This includes multilevel modeling, latent class analysis, Bayesian estimation, and even the core algorithms of the graphical SEM Builder. But Mata is not just for Stata developers; you too can take advantage of this powerful programming language.

Take a quick look at Mata.


  • Interactive—type matrix expressions and see results
  • Development—full development environment for developing programs and commands
  • Automatically compiled code

General features and matrix operators

  • Matrices with more than 2 billion rows and columns in Stata/MP
  • Matrices with up to 2 billion rows and columns in Stata/SE and Stata/IC
  • Support for real and complex values
  • Joining by rows or columns
  • Addition, subtraction, multiplication, and scalar division
  • Elementwise arithmetic
  • Transposition and reshaping
  • Kronecker and Hadamard products
  • Inner and outer products

Optimizer Updated

  • Code the function, function and gradient, or function, gradient, and Hessian
  • Newton–Raphson, BFGS, DFP, BHHH, Nelder–Mead, and Gauss–Newton techniques
  • Versions for general problems and statistical problems like maximum likelihood
  • Covariance matrix based on Hessian, outer product of gradients, or robust/sandwich

Mathematical and matrix functions

  • LAPACK numerical analysis routines
  • Hundreds of mathematical, string, and matrix utility functions
  • Unicode-aware string functions
  • Locale-based sorting and string comparison
  • Symmetric, nonsymmetric, and generalized inverses
  • Cholesky , LU , QR , and SVD solvers
  • Trigonometric and other transcendental functions
  • Gamma and factorial functions
  • Density and distribution functions Updated
  • Polynomial evaluation , arithmetic, and calculus
  • Hilbert , Toeplitz , and Vandermonde matrices
  • Duplication , commutation , and elimination matrices
  • Random-number generation
  • Fast Fourier analysis
  • Cubic splines
  • Means , sums , minimums and maximums of matrices
  • Numerical first and second derivatives
Explore all of Mata’s functions.

Stata interface

  • Convert Stata datasets to matrices and vice versa
  • Virtual matrix views onto dataset
  • Access and set estimation-class and other macros
  • Manipulate dataset value labels

Compiled language

  • C/C++-like syntax
  • Classes
  • Structures
  • Pointers
  • Numeric and string types
  • Matrices as an intrinsic type, including row and column vectors and full matrices

Object-oriented programming

  • Inheritance
  • Virtual functions
  • Encapsulation of data structures and programs


  • Eigenvalues and eigenvectors
  • Cholesky
  • LU and LUD
  • QR
  • Schur
  • Hessenberg
  • Singular value
  • Permutation matrices

Data accumulation

  • Cross products
  • Cross products of deviations from means
  • Weighted and GLS-type cross products
  • Support for quad-precision cross products

Nonlinear system solver

  • Fixed-point and root-finding problems
  • Gauss–Seidel, Broyden–Powell, and Newton–Raphson methods

Creation of Word, Excel, and PDF files

  • Programmatic access to create Word documents Updated
  • Low-level cell-by-cell access to write results to and read data from Excel, including graphs, formulas, date formats, currency formats, bold, italics, and more.
  • Programmatic access to create PDF files Updated

Other features

  • String scalars and matrices, including Unicode support
  • File I/O , including buffered I/O
  • URL percent encoding and decoding New
  • C-like syntax
  • Fast execution

Additional resources

Read the Introduction to Mata.

See New in Stata 15 for more about what was added in Stata 15.





The Stata Blog: Not Elsewhere Classified Find us on Facebook Follow us on Twitter LinkedIn Google+ YouTube Instagram
© Copyright 1996–2018 StataCorp LLC   •   Terms of use   •   Privacy   •   Contact us