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

📄 boost_debug_tool.h

📁 InnovLabSimu在vc++下实现
💻 H
字号:
#pragma once

/********************************************************************
	created:	2008/01/05
	created:	5:1:2008   10:21
	filename: 	c:\boosttest\MyTargetTrack\MyTargetTrack\BOOST_DEBUG_TOOL.h
	file path:	c:\boosttest\MyTargetTrack\MyTargetTrack
	file base:	BOOST_DEBUG_TOOL
	file ext:	h
	author:		GaoYang
	
	purpose:	因boost程序无法看出矩阵或向量的内容,因此设计此类专用于调试时观察用
	            需要用时,虚 继承此类
*********************************************************************/
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/storage.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>

typedef std::vector<std::vector<double>> MAT_TYPE;
typedef std::vector<double> VEC_TYPE;

typedef std::vector<double*> VEC_ADDRESS_TYPE;
typedef std::vector<VEC_ADDRESS_TYPE > MAT_ADDRESS_TYPE;
using namespace boost::numeric::ublas;

class BOOST_DEBUG_TOOL
{
public:
	BOOST_DEBUG_TOOL(void);
public:
	~BOOST_DEBUG_TOOL(void);
	VEC_TYPE m_vSigma_Row_Viewer;
	MAT_TYPE m_mSigma_Viewer;
	/**
	* 观察矩阵用的函数,将所需观察矩阵的每个元素都放在m_mSigma_Viewer,因此外部看m_mSigma_Viewer即可
	*/
	MAT_TYPE& ViewMatrix(matrix<double> & Mat);
	/**
	* 观察向量用的函数,将所需观察向量的每个元素都放在m_vSigma_Row_Viewer,因此外部看m_vSigma_Row_Viewer即可
	*/
	VEC_TYPE& ViewVector(boost::numeric::ublas::vector<double>& Vec);
	MAT_ADDRESS_TYPE m_mMAT_Viewer;///<观察的向量内每个元素的指针
	VEC_ADDRESS_TYPE m_vVEC_Row_Viewer;///<观察的矩阵内每个元素的指针
	/**
	* 观察矩阵用的函数,将所需观察矩阵的每个元素都放在m_mSigma_Viewer,因此外部看m_mMAT_Viewer即可
	*通过目标矩阵的元素地址观察
	*/
	virtual MAT_ADDRESS_TYPE& ViewMatrixAddress(matrix<double> & Mat);
	/**
	* 观察向量用的函数,将所需观察向量的每个元素都放在m_vSigma_Row_Viewer,因此外部看m_vVEC_Row_Viewer即可
	*/
	virtual VEC_ADDRESS_TYPE& ViewVectorAddress(boost::numeric::ublas::vector<double>& Vec);
	double SumVector(boost::numeric::ublas::vector<double>& Vector);

};

//for (int i=0;i<m_mSCholResult.size1();i++)
//{
//	Sigma_Row_Viewer.clear();
//	for (int j=0;j<m_mSCholResult.size2();j++)
//	{
//		Sigma_Row_Viewer.push_back(m_mSCholResult(i,j));
//	}
//	Sigma_Viewer.push_back(Sigma_Row_Viewer);
//}

⌨️ 快捷键说明

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