📄 parzenwnd.h
字号:
// ParzenWnd.h: interface for the CParzenWnd class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PARZENWND_H__2E8C4EDB_4661_4453_BAED_A0E1495294AA__INCLUDED_)
#define AFX_PARZENWND_H__2E8C4EDB_4661_4453_BAED_A0E1495294AA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
///////////////////////////////////////////
////
// 针对 N 维矢量的Parzen 窗法
////
///////////////////////////////////////////
#include "Estimate.h"
#include <assert.h>
class CParzenWnd : public CEstimate
{
public:
CParzenWnd(int nDim);
virtual ~CParzenWnd();
public:
//获得X处的概率密度估计值
//重载基类方法
virtual double Probility(vector<double> x);
protected:
//具体的窗函数,子类可以重载之以使用新的窗函数
virtual double WndFunc(vector<double> u);
//(x1-x2/h)
inline vector<double> VecOperator(vector<double> x1, vector<double> x2, double h);
private:
};
inline vector<double> CParzenWnd::VecOperator(vector<double> x1, vector<double> x2, double h)
{
assert(x1.size() == x2.size());
vector<double>::iterator vi1,vi2;
vector<double> ret_v;
double temp;
for (vi1 = x1.begin(), vi2 = x2.begin();
(vi1 != x1.end()) && (vi2 != x2.end());
vi1++,vi2++)
{
temp = *vi1 - *vi2;
temp /= h;
ret_v.push_back(temp);
}
return ret_v;
}
#endif // !defined(AFX_PARZENWND_H__2E8C4EDB_4661_4453_BAED_A0E1495294AA__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -