Lors de la manipulation de matrices, il est souvent pratique de changer leur forme. Par exemple, pour transformer une N x M matrice de taille dans un vecteur de longueur NX M. Dans un Matlab Reshape fonction existe:Comment remodeler des matrices dans Mathematica
RESHAPE (X, M, N) retourne la matrice M par N dont les éléments sont pris dans la colonne à partir de X. Une erreur se produit si X n'a pas d'éléments M * N.
Dans le cas d'une conversion entre une matrice et un vecteur je peux utiliser la fonction Mathematica Platten qui tire avantage de la représentation de liste imbriquée de Mathematica pour les matrices. A titre d'exemple rapide, supposons que j'ai une matrice X:
Avec Aplatir [X] Je peux obtenir le vecteur {1,2,3, ..., 16}. Mais ce qui serait bien plus utile est quelque chose de semblable à l'application Reshape de Matlab (X, 2,8) qui se traduirait par la matrice suivante:
Cela permettrait la création de matrices arbitraires tant que les dimensions sont égales à N * M. Pour autant que je sache, il n'y a rien de construit dans lequel je me demande si quelqu'un n'a pas codé une fonction Reshape de leur choix.
Note: Cette solution transpose les deux dernières dimensions, il ne fonctionne pas tout à fait. – Guillochon