Performs a tensor singular value decomposition on any 3-mode tensor using any discrete transform.
tSVD(tnsr,tform)
a Tensor-class object
If the SVD is performed on a \(m\) x \(n\) x \(k\) tensor, the components in the returned value are:
U: The left singular value tensor object (\(m\) x \(m\) x \(k\))
V: The right singular value tensor object (\(n\) x \(n\) x \(k\))
S: A diagonal tensor (\(m\) x \(n\) x \(k\))
: a 3-mode tensor
: Any discrete transform. Supported transforms are:
fft: Fast Fourier Transform
dwt: Discrete Wavelet Transform (Haar Wavelet)
dct: Discrete Cosine transform
dst: Discrete Sine transform
dht: Discrete Hadley transform
dwht: Discrete Walsh-Hadamard transform
Kyle Caudle
Randy Hoover
Jackson Cates
Kernfeld, E., Kilmer, M., & Aeron, S. (2015). Tensor-tensor products with invertible linear transforms. Linear Algebra and its Applications, 485, 545-570.
M. E. Kilmer, C. D. Martin, and L. Perrone, “A third-order generalization of the matrix svd as a product of third-order tensors,” Tufts University, Department of Computer Science, Tech. Rep. TR-2008-4, 2008
K. Braman, "Third-order tensors as linear operators on a space of matrices", Linear Algebra and its Applications, vol. 433, no. 7, pp. 1241-1253, 2010.
T <- rand_tensor(modes=c(2,3,4))
print(tSVD(T,"dst"))
Run the code above in your browser using DataLab