Abstract

Tensors (also known as multidimensional arrays or N -way arrays) are used in a variety of applications ranging from chemometrics to psychometrics. We describe four MATLAB classes for tensor manipulations that can be used for fast algorithm prototyping. The tensor class extends the functionality of MATLAB's multidimensional arrays by supporting additional operations such as tensor multiplication. The tensor_as_matrix class supports the “matricization” of a tensor, that is, the conversion of a tensor to a matrix (and vice versa), a commonly used operation in many algorithms. Two additional classes represent tensors stored in decomposed formats: cp_tensor and tucker_tensor. We describe all of these classes and then demonstrate their use by showing how to implement several tensor algorithms that have appeared in the literature.

Keywords

Tensor (intrinsic definition)Computer scienceMatrix multiplicationTensor contractionTensor calculusMATLABMatrix (chemical analysis)Variety (cybernetics)Class (philosophy)AlgorithmComputational scienceTensor productTheoretical computer scienceAlgebra over a fieldMathematicsTensor fieldExact solutions in general relativityArtificial intelligencePure mathematicsProgramming languagePhysicsMathematical analysis

Affiliated Institutions

Related Publications

Publication Info

Year
2006
Type
article
Volume
32
Issue
4
Pages
635-653
Citations
448
Access
Closed

External Links

Social Impact

Altmetric
PlumX Metrics

Social media, news, blog, policy document mentions

Citation Metrics

448
OpenAlex

Cite This

Brett W. Bader, Tamara G. Kolda (2006). Algorithm 862. ACM Transactions on Mathematical Software , 32 (4) , 635-653. https://doi.org/10.1145/1186785.1186794

Identifiers

DOI
10.1145/1186785.1186794