MATLAB Tensor Toolbox Version 2.5 (released Feb. 1, 2012)
Tensors (also known as multidimensional arrays or N-way 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 object-oriented 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 Higher-Order 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):635-653, 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 = {635--653},
  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):205-231, 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 = {205--231},
  doi = {10.1137/060676489}
}
— Article for Memory-Efficient Tucker (tucker_me and ttm_me) —
T. G. Kolda and J. Sun. Scalable Tensor Decompositions for Multi-aspect Data Mining, ICDM 2008: Proceedings of the 8th IEEE International Conference on Data Mining, pp. 363-372, December 2008. DOI: 10.1109/ICDM.2008.89. [BibTeX]

@inproceedings{TTB_MET,
  author = {Tamara G. Kolda and Jimeng Sun},
  title = {Scalable Tensor Decompositions for Multi-aspect Data Mining},
  booktitle = {ICDM 2008: Proceedings of the 8th IEEE International Conference on Data Mining},
  month = {December},
  year = {2008},
  pages = {363--372},
  doi = {10.1109/ICDM.2008.89}
}
— Article on all-at-once 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):67-86, 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 = {67--86},
  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):41-56, 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 = {41--56},
  doi = {10.1016/j.chemolab.2010.08.004}
}
— Article on Shifted Symmetric Higher-Order 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):1095-1124, 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 = {1095-1124},
  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}
}

Glossary

A tensor is a multidimensional or N-way array. A 1-way tensor is a vector and a 2-way tensor is a matrix. A 3-way 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 three-way array, this means the tensor X can be written as:

xijk = Σr Σs Σt grst air bjs ckt 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 three-way array, this means the tensor X can be written as:

xijk = Σr λr air bjr ckr 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)294-4769


Dependencies
Poblano Toolbox for Matlab


Related Links
The N-way toolbox for MATLAB