minh1999

matrix.cpp

Aug 16th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. #include "matrix.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. Matrix::Matrix()
  6. {
  7.     m_row = 3;
  8.     m_column = 3;
  9. }
  10.  
  11. Matrix::Matrix(int row, int column,double**data)
  12. {
  13.     m_row = row;
  14.     m_column = column;
  15.     m_data = data;
  16. }
  17.  
  18. Matrix::~Matrix()
  19. {
  20.     for (int i = 0; i < m_row; i++)
  21.     {
  22.         delete[] m_data[i];
  23.     }
  24.     delete[] m_data;
  25. }
  26.  
  27. Matrix::Matrix(const Matrix &matrix)
  28. {
  29.     m_row = matrix.m_row;
  30.     m_column = matrix.m_column;
  31.     m_data = new double*[m_row];
  32.     for (int i = 0; i < m_row; i++)
  33.     {
  34.         m_data[i] = new double[m_column];
  35.     }
  36.     for (int i = 0; i < m_row; i++)
  37.         for (int j = 0; j < m_column; j++)
  38.             m_data[i][j] = matrix.m_data[i][j];
  39. }
  40.  
  41. void Matrix::operator=(const Matrix& matrix)
  42. {
  43.     m_row = matrix.m_row;
  44.     m_column = matrix.m_column;
  45.     m_data = new double*[m_row];
  46.     for (int i = 0; i < m_row; i++)
  47.     {
  48.         m_data[i] = new double[m_column];
  49.     }
  50.     for (int i = 0; i < m_row; i++)
  51.         for (int j = 0; j < m_column; j++)
  52.             m_data[i][j] = matrix.m_data[i][j];
  53. }
  54.  
  55. Matrix Matrix::operator*(const Matrix& matrix)
  56. {
  57.     //Matrix result(m_row,matrix.m_column);
  58.     double** data_tmp = new double*[m_row];
  59.     for (int i = 0; i < m_row; i++)
  60.     {
  61.         data_tmp[i] = new double[matrix.m_column];
  62.     }
  63.     for (int i = 0; i < m_row; ++i)
  64.         for (int j = 0; j < matrix.m_column; ++j)
  65.             for (int k = 0; k < m_column; ++k)
  66.             {
  67.                 data_tmp[i][j] += m_data[i][k] * matrix.m_data[k][j];
  68.             }
  69.     Matrix result(m_row, matrix.m_column,data_tmp);
  70.     return result;
  71. }
  72.  
  73. void Matrix::show()
  74. {
  75.     for (int i = 0; i < m_row; i++)
  76.     {
  77.         for (int j = 0; j < m_column; j++)
  78.         {
  79.             cout << m_data[i][j] << " ";
  80.         }
  81.         cout << endl;
  82.     }
  83. }
Add Comment
Please, Sign In to add comment