TensorTranspose [tensor,perm]
represents the tensor obtained by transposing the slots of tensor as given by the permutation perm.
TensorTranspose
TensorTranspose [tensor,perm]
represents the tensor obtained by transposing the slots of tensor as given by the permutation perm.
Details
- The tensor can be any form of explicit array (normal, sparse, or structured) or any symbolic expression representing a tensor, including tensor products, tensor contractions, etc.
- The permutation perm can be given as a permutation list or in cyclic notation with head Cycles . Cyclic notation is automatically transformed into list notation.
- TensorTranspose [tensor] is equivalent to TensorTranspose [tensor,{2,1}].
Examples
open all close allBasic Examples (2)
Transpose the first two levels of a symbolic array of rank 3:
Perform tensor operations on transposed symbolic tensors:
Scope (3)
On normal arrays:
On symmetrized arrays. This is an antisymmetric array:
On symbolic tensors:
The presence of symmetry allows further simplification:
Generalizations & Extensions (1)
Transpose tensors using symmetry generators of the form {perm,φ}, with φ a root of unity:
Applications (1)
Given a Riemannian metric , the so-called Christoffel coefficients of the first kind form a rank-three array with components given by the formula :
Since Grad adds a new innermost dimension, the first term in parentheses is merely Grad [g,x]:
The second term keeps the first level in place but interchanges the second and third levels:
The final term cyclically permutes the levels in the first term:
Combining all the pieces yields the following:
This procedure is automated using the following function:
Apply the function to the spherical metric:
Properties & Relations (7)
TensorTranspose on arrays is equivalent to Transpose :
However, Transpose allows second arguments that are not permutations:
The dimensions of the transposed array are equal to the permuted dimensions of the original:
Transposing a tensor product of vectors is equivalent to permuting those vectors:
With symbolic tensors, the permutation is canonicalized to list form by default:
If the rank is known, the permutation list will be extended if possible:
TensorTranspose is always placed outside TensorContract :
That is a transposition of a rank 3 symbolic array:
Combine transpositions of a symbolic tensor:
Check it with explicit arrays:
TensorTranspose is a proper right action with respect to PermutationProduct :
The same result can be obtained by multiplying permutations in the same order:
But not in the opposite order:
Tech Notes
Related Guides
History
Text
Wolfram Research (2012), TensorTranspose, Wolfram Language function, https://reference.wolfram.com/language/ref/TensorTranspose.html.
CMS
Wolfram Language. 2012. "TensorTranspose." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/TensorTranspose.html.
APA
Wolfram Language. (2012). TensorTranspose. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TensorTranspose.html
BibTeX
@misc{reference.wolfram_2025_tensortranspose, author="Wolfram Research", title="{TensorTranspose}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/TensorTranspose.html}", note=[Accessed: 17-November-2025]}
BibLaTeX
@online{reference.wolfram_2025_tensortranspose, organization={Wolfram Research}, title={TensorTranspose}, year={2012}, url={https://reference.wolfram.com/language/ref/TensorTranspose.html}, note=[Accessed: 17-November-2025]}