Algorithm 862: MATLAB Tensor Classes for Fast Algorithm Prototyping


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.

ACM Transactions on Mathematical Software
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.


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


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},