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

📄 matrix_wrapper.h

📁 有关Bayes滤波的matlab程序
💻 H
字号:
// $Id: matrix_wrapper.h 28197 2007-05-25 13:41:16Z tdelaet $// Copyright (C) 2002 Klaas Gadeyne <first dot last at gmail dot com>//  // This program is free software; you can redistribute it and/or modify// it under the terms of the GNU Lesser General Public License as published by// the Free Software Foundation; either version 2.1 of the License, or// (at your option) any later version.//  // This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU Lesser General Public License for more details.//  // You should have received a copy of the GNU Lesser General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.//  #ifndef __MATRIX_WRAPPER__#define __MATRIX_WRAPPER__// define#define use_namespace#define MyMatrix          MatrixWrapper::Matrix#define MyColumnVector    MatrixWrapper::ColumnVector#define MyRowVector       MatrixWrapper::RowVector#define MySymmetricMatrix MatrixWrapper::SymmetricMatrixnamespace MatrixWrapper{class Matrix; class ColumnVector; class RowVector; class SymmetricMatrix;/// Class Matrixwrapperclass Matrix_Wrapper{public:  /// Constructor  Matrix_Wrapper() {};  /// Destructor  virtual ~Matrix_Wrapper() {};  /// Ask Number of Rows  virtual unsigned int rows() const = 0;  /// Ask Number of Columns  virtual unsigned int columns() const = 0;  /// Operator ()  virtual double& operator()(unsigned int,unsigned int) = 0;  /// Operator ()  virtual const double operator()(unsigned int,unsigned int) const = 0;  /// Operator ==  virtual const bool operator==(const MyMatrix& a) const = 0;  /// Set all elements of the Matrix equal to a  virtual MyMatrix& operator =(double a) = 0;  /// MATRIX - SCALAR operator  virtual MyMatrix& operator +=(double a) = 0;  /// MATRIX - SCALAR operator  virtual MyMatrix& operator -=(double a) = 0;  /// MATRIX - SCALAR operator  virtual MyMatrix& operator *=(double b) = 0;  /// MATRIX - SCALAR operator  virtual MyMatrix& operator /=(double b) = 0;  /// MATRIX - SCALAR operator  virtual MyMatrix operator+ (double b) const = 0;  /// MATRIX - SCALAR operator  virtual MyMatrix operator- (double b) const = 0;  /// MATRIX - SCALAR operator  virtual MyMatrix operator* (double b) const = 0;  /// MATRIX - SCALAR operator  virtual MyMatrix operator/ (double b) const = 0;  /// MATRIX - SYMMETRICMATRIX operators  virtual MyMatrix& operator =(const MySymmetricMatrix& a) = 0;  /// MATRIX - MATRIX operator  virtual MyMatrix& operator +=(const MyMatrix& a) = 0;  /// MATRIX - MATRIX operator  virtual MyMatrix& operator -=(const MyMatrix& a) = 0;  /// MATRIX - MATRIX operator  virtual MyMatrix operator+ (const MyMatrix &a) const = 0;  /// MATRIX - MATRIX operator  virtual MyMatrix operator- (const MyMatrix &a) const = 0;  /// MATRIX - MATRIX operator  virtual MyMatrix operator* (const MyMatrix &a) const = 0;  /// MATRIX - VECTOR operator  virtual MyColumnVector operator* ( const MyColumnVector &b) const = 0;  /// Get row from matrix  virtual MyRowVector rowCopy(unsigned int r) const = 0;    /// Get column from matrix  virtual MyColumnVector columnCopy(unsigned int c) const = 0;  /// resize matrix  virtual void resize(unsigned int i, unsigned int j, 		      bool copy=true, bool initialize=true) = 0;  /// get pseudoinverse  virtual MyMatrix pseudoinverse(double epsilon = 0.01 ) const;  /// get inverse  virtual MyMatrix inverse() const = 0;  /// get transpose  virtual MyMatrix transpose() const = 0;  /// get determinant  virtual double determinant() const = 0;    /// Turn matrix into Symmetric one  /** Convert Matrix to SymmetricMatrix      Elements of matrix are copied to lower triangle of new symmetric matrix  */  virtual int convertToSymmetricMatrix(MySymmetricMatrix& sym) = 0;  /// get sub matrix  virtual MyMatrix sub(int i_start, int i_end, int j_start , int j_end) const = 0;  /// SVD Decomposition (for pseudo-inverse properties)  virtual bool SVD(MyColumnVector& D, MyMatrix& U, MyMatrix& V) const ;    double PYTHAG(double a,double b) const;    double SIGN(double a,double b) const;}; // class Matrix_Wrapper /// Class SymmetricMatrixWrapperclass SymmetricMatrix_Wrapper{public:  /// Constructor  SymmetricMatrix_Wrapper() {};  /// Destructor  virtual ~SymmetricMatrix_Wrapper() {};  /// Ask Number of Rows  virtual unsigned int rows() const = 0;  /// Ask Number of Columns  virtual unsigned int columns() const = 0;  /// Operator ()  virtual double& operator()(unsigned int,unsigned int) = 0;  /// Operator ()  virtual const double operator()(unsigned int,unsigned int) const = 0;    /// Operator ==  virtual const bool operator==(const MySymmetricMatrix& a) const = 0;  /// Set all elements of the Matrix equal to a  virtual MySymmetricMatrix& operator =(double a) = 0;  /// SYMMETRICMATRIX - SCALAR operator  virtual MySymmetricMatrix& operator +=(double a) = 0;  /// SYMMETRICMATRIX - SCALAR operator  virtual MySymmetricMatrix& operator -=(double a) = 0;  /// SYMMETRICMATRIX - SCALAR operator  virtual MySymmetricMatrix& operator *=(double b) = 0;  /// SYMMETRICMATRIX - SCALAR operator  virtual MySymmetricMatrix& operator /=(double b) = 0;  /// SYMMETRICMATRIX - SCALAR operator  virtual MySymmetricMatrix operator+ (double b) const = 0;  /// SYMMETRICMATRIX - SCALAR operator  virtual MySymmetricMatrix operator- (double b) const = 0;  /// SYMMETRICMATRIX - SCALAR operator  virtual MySymmetricMatrix operator* (double b) const = 0;  /// SYMMETRICMATRIX - SCALAR operator  virtual MySymmetricMatrix operator/ (double b) const = 0;  /// SYMMETRICMATRIX - MATRIX operator  virtual MyMatrix& operator +=(const MyMatrix& a) = 0;  /// SYMMETRICMATRIX - MATRIX operator  virtual MyMatrix& operator -=(const MyMatrix& a) = 0;  /// SYMMETRICMATRIX - MATRIX operator  virtual MyMatrix operator+ (const MyMatrix &a) const = 0;  /// SYMMETRICMATRIX - MATRIX operator  virtual MyMatrix operator- (const MyMatrix &a) const = 0;  /// SYMMETRICMATRIX - MATRIX operator  virtual MyMatrix operator* (const MyMatrix &a) const = 0;  /// SYMMETRICMATRIX - SYMMETRICMATRIX operators  virtual MySymmetricMatrix& operator +=(const MySymmetricMatrix& a) = 0;  /// SYMMETRICMATRIX - SYMMETRICMATRIX operators  virtual MySymmetricMatrix& operator -=(const MySymmetricMatrix& a) = 0;  /// SYMMETRICMATRIX - SYMMETRICMATRIX operators  virtual MySymmetricMatrix operator+ (const MySymmetricMatrix &a) const = 0;  /// SYMMETRICMATRIX - SYMMETRICMATRIX operators  virtual MySymmetricMatrix operator- (const MySymmetricMatrix &a) const= 0;  /// SYMMETRICMATRIX - SYMMETRICMATRIX operators  virtual MyMatrix operator* (const MySymmetricMatrix &a) const = 0;  /// SYMMETRICMATRIX - VECTOR operator  virtual ColumnVector operator* ( const MyColumnVector &b) const = 0;  /// resize symmetric matrix  virtual void resize(unsigned int i, bool copy=true, bool initialize=true) = 0;  /// get inverse  virtual MySymmetricMatrix inverse() const = 0;  /// get transpose  virtual MySymmetricMatrix transpose() const = 0;  /// get determinant  virtual double determinant() const = 0;    /// get sub matrix  virtual MyMatrix sub(int i_start, int i_end, int j_start , int j_end) const = 0;  /// Cholesky Decomposition for semidefinite matrices  virtual bool cholesky_semidefinite(MyMatrix& m) const ;}; //class SymmetricMatrix_Wrapper} // namespace// include#include "matrix_NEWMAT.h"#include "matrix_LTI.h"#include "matrix_BOOST.h"#endif // __MATRIX_WRAPPER__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -