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

📄 matrix.h

📁 adaboost code in matlab
💻 H
字号:
#ifndef __MATRIX_H__
#define __MATRIX_H__
#include <iostream.h>

typedef double T;

class Matrix
{
//private:
	T** element;
	int rows;
	int cols;

	void alloc(void);
	void release(void);

	void toZero(void);
	void toOne(void);
	void toUnit(void);								// set to identity matrix
	void toUpper(void);
	T cofact(int r, int c) const;
	
	Matrix& swapRow(int r1, int r2, int c);
	Matrix& operator += (const Matrix& m);
	Matrix& operator -= (const Matrix& m);
	Matrix& operator *= (const T& c);
	void reptError (char* errorMsg) const;
    
public:
	Matrix() { rows=cols=0; }
	Matrix(int r, int c);
	Matrix(const Matrix& m);						// copy constructor
	~Matrix();

	//int row(void) const { return rows; }
	//int col(void) const { return cols; }
	long col(void) const { return cols; }
	long row(void) const { return rows; }
	void print (void) const;
    void minor(int r, int c, Matrix& m) const;
	bool isNull(void);
	bool isSquare(void) const { return (rows==cols) ? true:false; } 

	Matrix operator + (const Matrix& m) const;
	Matrix operator - (const Matrix& m) const;
	Matrix operator * (const T& c) const;
	Matrix operator > (const T& c) const;
	Matrix& operator>= (const T& c);
	Matrix operator * (const Matrix& m) const;
	Matrix operator / (const Matrix& m) const;
	Matrix& operator = (const Matrix& m);
	T operator () (int i, int j) const;				// get element[i][j]
	bool operator == (const Matrix& m) const;
	bool operator != (const Matrix& m);

	T det (void) const;								// find determinant
	void set (int i, int j, T val);					// set element[i][j]
	void ones(int i, int j, T val, int scaler);
	void zeros(int i, int j);
	void partOfMatrix(int r, int c, Matrix& m) const;
	void partOfMatrixFromEnd(int r_train, int step,int c,Matrix& m) const;
	void partOfMatrixNext(int r, int c, int step, Matrix& m) const;
	void specificPartOfMatrix(Matrix& m,int r, int c);
	void ScalarMinusMatrix(double k, Matrix& m) const;
	void matrixAbs(Matrix& m) const;
	void matrixExp(Matrix& m) const;
	void matrixLog(Matrix& m) const;
	void setValue (int tt, T val);
	void matrixTranspose (int r, int c, const Matrix& m) const;
	void MatrixMultiMatrix (const Matrix& m,const Matrix& n) const;
	void MatrixMultiMatrixCOL (const Matrix& m, const Matrix& n) const;
	//void matrixMinusMatrix (Matrix& n, Matrix& m);
	void matrixMinusMatrix (const Matrix& m, const Matrix& n) const;
	void matrixMinusSclar (double scalar, Matrix& m);
	void MatrixMultiScalar (double scalar, Matrix& m);
	void matrixdDivisonScalar(double scalar, const Matrix& m) const;
	void scalarDivisonScalar(double scalar_1, double scalar_2, const Matrix& m) const;
	void copyToMatrix(int tt, Matrix& m) const;
	void ifValZero(double step,Matrix& m) const;
	int ifValueIsMissing(int *missing, Matrix& m) const;
	void copyMatrixToArray (int nsample, int mdim, int array[], Matrix& m);
	void copyArrayToMatrix (int nsample, int mdim, int array[], Matrix& m);
	void copyArrayToArray (int nsample, int mdim, float array_1[], int array_2[]);
	void copyVectorToMatrix (int k,Matrix& m);
	void copyMatrixToMatrix (Matrix& m);
	int matrixMax(double *val, int *index, Matrix& m) const;
	void matrixToArray(double array[10], Matrix& m) const;
	void matrixToArray1(double array[10], Matrix& m) const;
	void matrixToArrayold(double array[10], Matrix& m) const;
	int getValue (int j,double *val, Matrix& m) const;
	int getValueSpecific(int i, int j,double *val, Matrix& m) const;
	int matrixSumCol(double *sum,  Matrix& m) const;
	int matrixSumRow(double *sum,  Matrix& m) const;
	int matrixCompareAndSet(int *i_index,int c_train, Matrix& m) const;
	int matrixCompareAndSetfor_t(int k, int *t_index, int c_train, Matrix& m) const;
	void ScalarMultiMatrix (double scalar, Matrix& m);
	void matrixSize(int *i, int *j, Matrix& m) const;
	//void MultiMatrix(int r, int c, const Matrix& m) const;
	Matrix transpose (void) const;
	//Matrix copy (Matrix& m) const;
    void copy (int tt, Matrix& m) const;
	void adjoin(Matrix& m) const;
	Matrix inverse (void) const;

	void readFile(char* file_name);
	void writeFile(char* file_name);

	// friend function for the List class //
	friend istream& operator>> ( istream& is, Matrix& m );
	friend ostream& operator<< ( ostream& os, const Matrix& m );
};


#endif	// __MATRIX_H__ //

⌨️ 快捷键说明

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