  As a result of their applications in network coding, space-time coding, and
coding for criss-cross errors, matrix codes have garnered significant
attention; in various contexts, these codes have also been termed rank-metric
codes, space-time codes over finite fields, and array codes. We focus on
characterizing matrix codes that are both efficient (have high rate) and
effective at error correction (have high minimum rank-distance). It is well
known that the inherent trade-off between dimension and minimum distance for a
matrix code is reversed for its dual code; specifically, if a matrix code has
high dimension and low minimum distance, then its dual code will have low
dimension and high minimum distance. With an aim towards finding codes with a
perfectly balanced trade-off, we study self-dual matrix codes. In this work, we
develop a framework based on double cosets of the matrix-equivalence maps to
provide a complete classification of the equivalence classes of self-dual
matrix codes, and we employ this method to enumerate the equivalence classes of
these codes for small parameters.
