Tensors (also known as multidimensional arrays or Nway arrays) are
used in a variety of applications ranging from chemometrics to
network analysis. The Tensor Toolbox provides the following classes for
manipulating dense, sparse, and structured tensors using MATLAB's
objectoriented features:
 tensor  A (dense) multidimensional array
(extends MATLAB's current capabilities).
 sptensor  A sparse multidimensional array.
 tenmat  Store a tensor as a matrix, with extra information so
that it can be converted back into a tensor.
 sptenmat  Store an sptensor as a sparse matrix in
coordinate format, with extra information so
that it can be converted back into an sptensor.
 ttensor  Store a tensor decomposed as a Tucker operator
(see Glossary).
 ktensor  Store a tensor decomposed as a Kruskal operator
(see Glossary).
The Tensor Toolbox for MATLAB is free for research and evaluation, but we ask that you agree to the license terms below and please cite the appropriate references (listed below) so that we can continue to show the relevance of this work.
What's New in Version 2.5?
Version 2.5 adds
 cp_apr  Poisson Tensor Factorization for canonical (CP) factorizations of sparse count data
 sshopm  Shifted Symmetric HigherOrder Power Method for computing tensor eigenpairs
 create_problem  Tools for generating random solutions and data for tensor factorization
 create_guess  Tools for creating starting points for initializing tensor factorizations
 symmetrize/issymmetric  Functions to symmetrize a tensor and check symmetry
 ttsv  Multiplies a dense symmetric tensor by the vector in multiple modes
 teneye  Creates the (symmetric) "identity tensor" such that multiplying that tensor by any random vector of norm 1 in all modes but one returns the same vector
 import_data/export_data  Functions for importing and exporting text versions of tensors and matrices
 divide  Elementwise division of an sptensor by a ktensor
We have also fixed many bugs. To see a complete list of changes, view
the RELEASE_NOTES.txt file.
Download
To obtain a free license for our software for research and evaluation, visit the
Tensor Toolbox License, Registration, and Download page. Commercial licenses are available at low cost.
How to Cite
If you have used the Tensor Toolbox in your work in any way, please cite the software itself along with at least one publication or preprint. BibTeX for each item can be seen by clicking "[BibTeX]". Thanks very much for your support.
— Software reference —
Brett W. Bader, Tamara G. Kolda and others.
MATLAB Tensor Toolbox Version 2.5,
Available online,
January
2012.
URL: http://www.sandia.gov/~tgkolda/TensorToolbox/.
[BibTeX]

@misc{TTB_Software,
author = {Brett W. Bader and Tamara G. Kolda and others},
title = {MATLAB Tensor Toolbox Version 2.5},
howpublished = {Available online},
month = {January},
year = {2012},
url = {http://www.sandia.gov/~tgkolda/TensorToolbox/}
}

— Default article to cite for dense computations with the Tensor Toolbox —
B. W. Bader and T. G. Kolda.
Algorithm 862: MATLAB tensor classes for fast algorithm prototyping,
ACM Transactions on Mathematical Software
32(4):635653,
December
2006.
DOI: 10.1145/1186785.1186794.
[BibTeX]

@article{TTB_Dense,
author = {Brett W. Bader and Tamara G. Kolda},
title = {Algorithm 862: {MATLAB} tensor classes for fast algorithm prototyping},
journal = {ACM Transactions on Mathematical Software},
month = {December},
year = {2006},
volume = {32},
number = {4},
pages = {635653},
doi = {10.1145/1186785.1186794}
}

— Default article to cite for sparse computation with the Tensor Toolbox —
B. W. Bader and T. G. Kolda.
Efficient MATLAB computations with sparse and factored tensors,
SIAM Journal on Scientific Computing
30(1):205231,
December
2007.
DOI: 10.1137/060676489.
[BibTeX]

@article{TTB_Sparse,
author = {Brett W. Bader and Tamara G. Kolda},
title = {Efficient {MATLAB} computations with sparse and factored tensors},
journal = {SIAM Journal on Scientific Computing},
month = {December},
year = {2007},
volume = {30},
number = {1},
pages = {205231},
doi = {10.1137/060676489}
}

— Article for MemoryEfficient Tucker (tucker_me and ttm_me) —
T. G. Kolda and J. Sun.
Scalable Tensor Decompositions for Multiaspect Data Mining,
ICDM 2008: Proceedings of the 8th IEEE International Conference on Data Mining,
pp. 363372,
December
2008.
DOI: 10.1109/ICDM.2008.89.
[BibTeX]

@inproceedings{TTB_MET,
author = {Tamara G. Kolda and Jimeng Sun},
title = {Scalable Tensor Decompositions for Multiaspect Data Mining},
booktitle = {ICDM 2008: Proceedings of the 8th IEEE International Conference on Data Mining},
month = {December},
year = {2008},
pages = {363372},
doi = {10.1109/ICDM.2008.89}
}

— Article on allatonce optimization for CP factorization (cp_opt) —
E. Acar, D. M. Dunlavy and T. G. Kolda.
A Scalable Optimization Approach for Fitting Canonical Tensor Decompositions,
Journal of Chemometrics
25(2):6786,
February
2011.
DOI: 10.1002/cem.1335.
[BibTeX]

@article{TTB_CPOPT,
author = {Evrim Acar and Daniel M. Dunlavy and Tamara G. Kolda},
title = {A Scalable Optimization Approach for Fitting Canonical Tensor Decompositions},
journal = {Journal of Chemometrics},
month = {February},
year = {2011},
volume = {25},
number = {2},
pages = {6786},
doi = {10.1002/cem.1335}
}

— Article on CP factorization with missing data (cp_wopt) —
E. Acar, D. M. Dunlavy, T. G. Kolda and M. Mørup.
Scalable Tensor Factorizations for Incomplete Data,
Chemometrics and Intelligent Laboratory Systems
106(1):4156,
March
2011.
DOI: 10.1016/j.chemolab.2010.08.004.
[BibTeX]

@article{TTB_CPWOPT,
author = {Evrim Acar and Daniel M. Dunlavy and Tamara G. Kolda and Morten M{\o}rup},
title = {Scalable Tensor Factorizations for Incomplete Data},
journal = {Chemometrics and Intelligent Laboratory Systems},
month = {March},
year = {2011},
volume = {106},
number = {1},
pages = {4156},
doi = {10.1016/j.chemolab.2010.08.004}
}

— Article on Shifted Symmetric HigherOrder Power Method for Tensor Eigenvalues (sshopm) —
T. G. Kolda and J. R. Mayo.
Shifted Power Method for Computing Tensor Eigenpairs,
SIAM Journal on Matrix Analysis and Applications
32(4):10951124,
October
2011.
DOI: 10.1137/100801482.
[BibTeX]

@article{TTB_SSHOPM,
author = {Tamara G. Kolda and Jackson R. Mayo},
title = {Shifted Power Method for Computing Tensor Eigenpairs},
journal = {SIAM Journal on Matrix Analysis and Applications},
month = {October},
year = {2011},
volume = {32},
number = {4},
pages = {10951124},
doi = {10.1137/100801482}
}

— Preprint on Poisson Tensor Factorization (cp_apr) —
E. C. Chi and T. G. Kolda.
On Tensors, Sparsity, and Nonnegative Factorizations,
arXiv:1112.2414 [math.NA],
December
2011.
URL: http://arxiv.org/abs/1112.2414.
[BibTeX]

@misc{TTB_CPAPR,
author = {Eric C. Chi and Tamara G. Kolda},
title = {On Tensors, Sparsity, and Nonnegative Factorizations},
howpublished = {arXiv:1112.2414 [math.NA]},
month = {December},
year = {2011},
url = {http://arxiv.org/abs/1112.2414}
}

A tensor is a multidimensional or Nway array. A 1way tensor
is a vector and a 2way tensor is a matrix. A 3way tensor is a cube of
data. And so on.
A sparse tensor is a tensor where only a small fraction of the
elements are nonzero. In this case, it is more efficient to store just
the nonzeros and their indices.
A tensor that is decomposed as a Tucker Operator comprises a
core tensor multiplied in each mode by a matrix. For a threeway array,
this means the tensor X can be written as:
x_{ijk} = Σ_{r }Σ_{s} Σ_{t} g_{rst}
a_{ir} b_{js} c_{kt} for all i,j,k
Thus, the tensor X may be stored in terms of its components, the core
tensor G and the factor matrices A,B,C.
A tensor that is decomposed as a Kruskal Operator comprises a
component matrix for each mode and an optional scaling vector. For a
threeway array, this means the tensor X can be written as:
x_{ijk} = Σ_{r} λ_{r} a_{ir} b_{jr} c_{kr} for all i,j,k.
Thus, the tensor X may be stored in terms of its components, the
vector λ and the factor matrices A,B,C.
Contributors (in chronological order)
 Tamara G. Kolda (Sandia)
 Brett W. Bader (Digital Globe; formerly at Sandia)
 Jimeng Sun (IBM)
 Daniel M. Dunlavy (Sandia)
 Evrim Acar (U. Copenhagen; former postdoc at Sandia)
 Jackson Mayo (Sandia)
 Eric C. Chi (UCLA; former student intern at Sandia)
Mailing List
Join the
Tensor Toolbox Mailing List to get important information on new
releases and more.
Questions or Comments
Links to Previous Versions

Tensor objects in MATLAB — The tensor
toolbox allows for the manipulation of multiway arrays.
Contacts
Tamara Kolda
(tgkolda@sandia.gov)
(925)2944769
Dependencies
Poblano Toolbox for
Matlab
Related Links
The Nway toolbox for MATLAB
