mFlatten {tensorBSS}R Documentation

Flattening an Array Along One Mode

Description

Reshapes a higher order array (tensor) into a matrix with a process known as m-mode flattening or matricization.

Usage

mFlatten(x, m)

Arguments

x

an (r + 1)-dimensional array with r \geq 2. The final mode is understood to correspond to the observations (i.e., its length is usually the sample size n).

m

an integer between 1 and r signifying the mode along which the array should be flattened. Note that the flattening cannot be done w.r.t. the final (r + 1)th mode.

Details

If the original tensor x has the size p_1 \times \cdots \times p_r \times n, then mFlatten(x, m) returns tensor of size p_m \times p_1 \cdots p_{m - 1} p_{m + 1} \cdots p_r \times n obtained by gathering all m-mode vectors of x into a wide matrix (an m-mode vector of x is any vector of length p_m obtained by varying the mth index and holding the other indices constant).

Value

The m-mode flattened 3rd order tensor of size p_m \times p_1 \cdots p_{m - 1} p_{m + 1} \cdots p_r \times n.

Author(s)

Joni Virta

Examples

n <- 10
x <- t(cbind(rnorm(n, mean = 0),
             rnorm(n, mean = 1),
             rnorm(n, mean = 2),
             rnorm(n, mean = 3),
             rnorm(n, mean = 4),
             rnorm(n, mean = 5)))
             
dim(x) <- c(3, 2, n)

dim(mFlatten(x, 1))
dim(mFlatten(x, 2))

[Package tensorBSS version 0.3.8 Index]