行列を操作する場合、形状を変更すると便利なことがよくあります。たとえば、N x M サイズの行列を長さ NX M のベクトルに変換するには、MATLAB にはreshape関数が存在します。
RESHAPE(X,M,N) は、要素が X から列方向に取得される M 行 N 列の行列を返します。X に M*N 要素がない場合は、エラーが発生します。
行列とベクトルの間の変換の場合、Mathematica 関数Flattenを使用できます。これは、Mathematica のネストされた行列表現を利用しています。簡単な例として、行列 X があるとします。
Flatten [X] を使用すると、ベクトル {1,2,3,...,16} を取得できます。しかし、Matlab のreshape (X,2,8)を適用するのに似たものの方がはるかに便利で、結果として次の Matrix が得られます。
これにより、次元が N*M に等しい限り、任意の行列を作成できます。私が知る限り、誰かが独自の Reshape 関数をコーディングしていないのではないかと思わせるようなものは何も組み込まれていません。