By the structure theorem, for every finite abelian group $A$, we have an isomorphism $A \cong \mathbb{Z}_{d_1} \oplus \dots \oplus \mathbb{Z}_{d_n}$ for unique $d_i$, s.t. $d_i | d_{i+1}$. My question is now, can we write down this isomorphism explicitly for $A= \mathbb{Z}^m/\text{im}(M)$, where $M \in \text{End}_{\mathbb{Z}}(\mathbb{Z}^m)$ is a full-rank integer-valued matrix?
Edit: I think it should be $$A=\mathbb{Z}^m/\text{im}(M)=\mathbb{Z}^m/\text{im}(MT)=\mathbb{Z}^m/\text{im}(S^{-1}D) \stackrel{[S]}{\mapsto} \mathbb{Z}^m/\text{im}(D) \cong \mathbb{Z}_{d_1} \oplus \dots \oplus \mathbb{Z}_{d_n}$$, where $D=SMT$ is the Smith normal form, is that right?