📄 matrix.h
字号:
/*******************************************************************************
文件名称:Matrix.h
作者:武汉大学测绘学院测绘工程2003级2班 陈胜 学号:200331610170
创建日期:2006-9-21 9:40
最后修改日期:2006-9-21 9:40
功能:定义了矩阵类 Matrix ,以非成员函数重载了 * 运算符,使之能进行 实数 * 矩阵 运算
所有成员变量和成员函数都为public属性
******************************************************************************************/
#ifndef _MATRIX_H_
#define _MATRIX_H_
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int dcinv ( double *a, int n ); // 求a[n][n]的逆
class Matrix
{
public:
//构造函数
Matrix ( );
Matrix ( int m_, int n_ );
Matrix ( double *a_, int m_, int n_ );
Matrix ( const Matrix &b );
//析构函数
~Matrix ( );
//设置矩阵
void set ( int m_, int n_ );
void set ( double *a_, int m_, int n_ );
//将矩阵初始化为m_*m_的单位矩阵
void Unit ( );
//矩阵元素置零
void Null ( );
//对 + 进行重载,使之能对矩阵进行运算
Matrix& operator + ( Matrix &b );
//对 - 进行重载,使之能对矩阵进行运算
Matrix& operator - ( Matrix &b );
//对 * 进行重载,使之能对矩阵进行运算
Matrix& operator * ( Matrix &b );
//对 * 进行重载,使之能进行 矩阵 * 实数 运算
Matrix& operator * ( double b );
//对 = 进行重载,使之能对矩阵进行运算
Matrix& operator = ( Matrix &b ) ;
//对 () 进行重载,以行号和列号取得某个元素 (a[m_*n+n_]) 的值
double& operator ()( int m_, int n_ );
//求矩阵的转置矩阵
Matrix& operator ~ ( ) ;
// Matrix& t();
//求矩阵的逆矩阵,仅用于正定阵
Matrix& operator ! ( ) ;
// Matrix& ni();
//显示矩阵,显示n_位小数,共显示m_位数,(%m.nf)。可以不设定,默认输出六位有效数字
int display ( int m_ = 6, int n_ = 6 );
public:
double* a; //用于保存矩阵数据的数组
int m, n; //矩阵的行数和列数
int i, j; //临时变量
};
//对 * 进行重载,使之能进行 实数 * 矩阵 运算
Matrix& operator * ( double b, Matrix &c );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -