⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix.h

📁 卫星单点定位程序
💻 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 + -