1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
use crate::matrix::Matrix;
use crate::number::Number;

impl<T> Matrix<T>
where
    T: Number,
{
    /// # Transpose
    pub fn t(&self) -> Matrix<T> {
        let mut new_matrix = Matrix::<T>::zeros(self.columns, self.rows);

        for i in 0..new_matrix.rows {
            for j in 0..new_matrix.columns {
                new_matrix[i][j] = self[j][i];
            }
        }

        new_matrix
    }
}