Algorithm 862: MATLAB Tensor Classes for Fast Algorithm Prototyping

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, i.e., 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.

Publication
ACM Transactions on Mathematical Software
Date
Citation
B. W. Bader, T. G. Kolda. Algorithm 862: MATLAB Tensor Classes for Fast Algorithm Prototyping. ACM Transactions on Mathematical Software, Vol. 32, No. 4, pp. 635-653, 2006. https://doi.org/10.1145/1186785.1186794

Keywords

Higher-Order Tensors, Multilinear Algebra, N-Way Arrays, MATLAB

BibTeX

@article{BaKo06,  
author = {Brett W. Bader and Tamara G. Kolda}, 
title = {Algorithm 862: {MATLAB} Tensor Classes for Fast Algorithm Prototyping}, 
journal = {ACM Transactions on Mathematical Software}, 
volume = {32}, 
number = {4}, 
pages = {635--653}, 
month = {December}, 
year = {2006},
doi = {10.1145/1186785.1186794},
}