public static MyMatrix operator!(MyMatrix m) { MyMatrix m3 = new MyMatrix(m.matrix.GetLength(1), m.matrix.GetLength(0)); for (int i = 0; i < m.matrix.GetLength(0); i++) { for (int j = 0; j < m.matrix.GetLength(1); j++) { m3.matrix[j, i] = m.matrix[i, j]; } } return(m3); }
public static MyMatrix operator+(MyMatrix m1, MyMatrix m2) { MyMatrix m3 = new MyMatrix(m1.matrix.GetLength(0), m1.matrix.GetLength(1)); for (int i = 0; i < m1.matrix.GetLength(0); i++) { for (int j = 0; j < m1.matrix.GetLength(1); j++) { m3.matrix[i, j] = m1.matrix[i, j] + m2.matrix[i, j]; } } return(m3); }
public static MyMatrix operator*(MyMatrix m1, MyMatrix m2) { MyMatrix m3 = new MyMatrix(m1.matrix.GetLength(0), m2.matrix.GetLength(1)); for (int i = 0; i < m1.matrix.GetLength(0); i++) { for (int j = 0; j < m2.matrix.GetLength(1); j++) { for (int k = 0; k < m1.matrix.GetLength(1); k++) { m3.matrix[i, j] += m1.matrix[i, k] * m2.matrix[k, j]; } } } return(m3); }
void BuildMtx(int id, int rows, int columns) { Random rnd = new Random(); switch (id) { case 1: mtxViz1.RowCount = rows; mtxViz1.ColumnCount = columns; matrx1 = new MyMatrix(rows, columns); for (int i = 0; i < matrx1.matrix.GetLength(0); i++) { for (int j = 0; j < matrx1.matrix.GetLength(1); j++) { matrx1.matrix[i, j] = rnd.Next(0, 10); mtxViz1.Rows[i].Cells[j].Value = matrx1.matrix[i, j]; } } break; case 2: mtxViz2.RowCount = rows; mtxViz2.ColumnCount = columns; matrx2 = new MyMatrix(rows, columns); for (int i = 0; i < matrx2.matrix.GetLength(0); i++) { for (int j = 0; j < matrx2.matrix.GetLength(1); j++) { matrx2.matrix[i, j] = rnd.Next(0, 10); mtxViz2.Rows[i].Cells[j].Value = matrx2.matrix[i, j]; } } break; } }