📄 matrix.h
字号:
// Matrix.h: 矩阵类的声明.
//---------------------------------------------------------------------------
#ifndef MatrixH
#define MatrixH
//---------------------------------------------------------------------------
//定义矩阵类
class TMatrix
{
private:
//矩阵的数据
int m_nRows; //矩阵行数
int m_nCols; //矩阵列数
double *pMatrix; //矩阵元素的起始地址
public:
//构造、析构函数
TMatrix();
virtual ~TMatrix();
TMatrix(int nRows,int nCols,double MinValue,double MaxValue); //矩阵初始化为[nRows][nCols]阶的随机阵
TMatrix(int nRows,int nCols,double Data=0.0); //矩阵初始化为[nRows][nCols]阶的Data阵
TMatrix(double *p,int nRows,int nCols); //传入[nRows][nCols]阶数组的起始地址
TMatrix(TMatrix& OneMatrix); //拷贝构造函数
//初始化函数
void InitAtRandom(int nRows,int nCols,double MinValue,double MaxValue);
void InitByData(int nRows,int nCols,double Data=0.0);
void TMatrix::InitByData(double Data=0.0);
void InitByArray(double *p,int nRows,int nCols);
void InitByMatrix(TMatrix& OneMatrix);
//操作函数
int GetCols() const; //获得矩阵行数
int GetRows() const; //获得矩阵列数
double *GetAddr() const; //获取矩阵数据区的指针
double GetValue(int i,int j) const; //获得矩阵中(i,j)的元素
void SetValue(int i,int j,double value); //设置矩阵中(i,j)的元素
TMatrix GetRowVector(int i) const; //获取矩阵中行向量
TMatrix GetColVector(int i) const; //获取矩阵中列向量
void Release(); //释放该矩阵占用的资源,实际上与析构函数相同
//重载运算符
void operator=(const TMatrix OneMatrix); //重载=运算符
TMatrix operator +(const TMatrix OneMatrix); //重载+运算符:矩阵+矩阵
void operator +=(const TMatrix OneMatrix); //重载+=运算符
TMatrix operator +(double Data); //重载+运算符:矩阵+常数
TMatrix operator -(const TMatrix OneMatrix); //重载-运算符:矩阵-矩阵
TMatrix operator *(const TMatrix OneMatrix); //重载*运算符:矩阵*矩阵
TMatrix operator *(double Data); //重载*运算符:矩阵*常数
TMatrix operator &&(TMatrix OneMatrix); //重载&&运算符:两矩阵对应元素相乘
friend TMatrix operator *(double Data,TMatrix OneMatrix); //重载*运算符:常数*矩阵
friend TMatrix operator -(const TMatrix OneMatrix); //重载负号
friend TMatrix operator +(double Data,TMatrix OneMatrix); //重载+运算符:常数+矩阵
//定义运算符及函数
TMatrix Anti(); //矩阵求逆
TMatrix Transpose(); //求转置矩阵
//如下函数均为方便神经网络的运算而提供
TMatrix Linear(double LowLimit,double HighLimit); //线性化
TMatrix Linear(TMatrix& LineInfo); //线性化
TMatrix DeLinear(TMatrix& LineInfo); //逆线性化
friend TMatrix TanH(TMatrix& Input,TMatrix& u,TMatrix& o); //求取矩阵元素的TanH函数值
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -