12,761,780 members (36,639 online)
alternative version

#### Stats

28K views
12 bookmarked
Posted 21 Feb 2007

# A templated Matrix class using 2d dynamic array declaration & having The most needed Mathematical functions of Matrix & also all the operators needed in standard c++ (without using any vc commands)

, 22 Feb 2007 CPOL
 Rate this:
This program is written By Shahin Namini

## Introduction

This Matrix class is a templated class that can be initialized as any kind of numeric types(int, double,float,& etc). it includes Inverse & determinant functions (which are not so easy to write the code) & also all the operators needed for a Matrix class like Multiplying 2 matrix or multiplying a digit to the matrix. it is able to be any size & also it is easy to use.

## Instruction

the uploaded file check.zip contains a file which shows how the Matrix can get initialized & how the operators or functions work. Note that parentheses is maybe the most important operator.it allows you to get access to the array elements ,as :

`matrix1`(2,0)=5;

## Member functions of class Matrix

These are all the member functions & operators of the class :

template<class T>
class Matrix
{
public:

1. Matrix(int Row_Size,int Column_Size)
2. Matrix() >
3. Matrix(const Matrix<T> &)
4. ~Matrix(void)
5. void Set_Element(int Row_,int Column,const T& Value)
6. T Get_Element(int Row ,int Column) const
7. bool operator!() const;
8. const Matrix<T> & operator=(const Matrix<T> &)
9. const Matrix<T> & operator=(const T&)
10. bool operator==(const Matrix<T> &) const
11. bool operator==(const T & ) const
12. bool operator!=(const Matrix<T> & second) const
13. bool operator!=(const T & number)
14. T &operator() (int Row,int Column)
15. Matrix<T> operator+(const T &)
16. Matrix<T> operator+(const Matrix<T> &)
17. const Matrix<T> &operator+=(const T&)
18. const Matrix<T> & operator+=(const Matrix<T> &)
19. Matrix<T> operator-(const T&)
20. Matrix<T> operator - (const Matrix<T> &)
21. const Matrix<T> & operator -=(const T & )
22. const Matrix<T> & operator -=(Matrix<T> & )
23. Matrix<T> operator*(const T&)
24. Matrix<T> operator* (const Matrix<T> &)
25. const Matrix<T> & operator*=(const T&)
26. const Matrix<T> & operator*=(const Matrix<T> &)
27. void Transposed();>
28. Matrix<T> GetTransposed() const
29. bool Inverse();>
30. Matrix<T> GetInversed() const
31. double Det() const
32. void Set_Size(int RowSize,int ColumnSize)
33. const int& Get_ColumnSize() const
34. const int & Get_RowSize() const
private:
• int m_RowSize
• int m_ColumnSize
• T**m_Data

};

## Notes

note:The returned argument of Inverse (a boolean ) Shows weather the matrix is Invertible & if it is ,inverts the Matrix

note:I have written this code in vc 2005 but it is not a managed code.if you compile it in vc6 you will see some errors that as an instance i is redeclared .thats because vc6 is alittle differant as when you declare i this way :for (int i=0;i<5;i++){ /*statements*/}

i is destroyed after for statement but in vc6 it is a declared variable even after for statement.but it is easy to change it to vc6 by debugging such errors in vc.you can do it yourself.

note:the only code i have not written my self is determinant because i have found a great one being written by Paul Bourke .to find the original code go to http://local.wasp.uwa.edu.au/~pbourke/other/determinant/

## Some Technics that are used in Class

to announce one,I have to point to the way the element array (m_Data) is declared using new command:

consider the m_RowSize & m_ColumnSize are given

m_Data=new T* [m_RowSize];

for(int i=0;i<m_RowSize;i++)

m_ColumnSize=new T [m_ColumnSize];

## Share

 CEO Iran (Islamic Republic of)
just a Geospatial Information Systems Specialist who loves programming & denotes his life this way.

## You may also be interested in...

 Pro Pro

 First Prev Next
 I think there is a bug [modified] sizheng13-Aug-07 20:54 sizheng 13-Aug-07 20:54
 Re: I think there is a bug shahin namini18-Aug-07 22:09 shahin namini 18-Aug-07 22:09
 A problem cclever10-Apr-07 23:48 cclever 10-Apr-07 23:48
 Re: A problem shahin namini12-Apr-07 2:50 shahin namini 12-Apr-07 2:50
 Last Visit: 31-Dec-99 19:00     Last Update: 26-Feb-17 16:38 Refresh 1