?? bocostfunction.cpp
字號:
#include <fstream>
#include <vector>
#include <cmath>
#include <string>
#include "BOCostFunction.h"
using namespace std;
BOCostFunction::BOCostFunction(void){}
BOCostFunction::~BOCostFunction(void){}
BOMatrix<double> BOCostFunction::Run(BOMatrix<double> HistP, BOMatrix<double> HistQ){
try{
int sizeR = HistP.r;
int sizeC = HistP.c;
double sumK;
double eps = 2.2204 * 0.0000000000000001;
BOMatrix<double> CostF(sizeR,sizeR);
for(int i = 0; i < sizeR; i++){
for(int j = 0; j < sizeR; j++){
sumK = 0;
for(int k = 0; k < sizeC; k++){
sumK += ( pow(( HistP[i][k] - HistQ[j][k] ),2) / ( HistP[i][k] + HistQ[j][k] + eps ));
}
CostF[i][j] = 0.5 * sumK;
}
}
return CostF;
}
catch ( const exception & r_e ){
cout << "Error: " << r_e.what();
cout << endl;
BOMatrix<double> CostF(0,0);
return CostF;
}
}
void BOCostFunction::SaveToFile(string filename, BOMatrix<double> CostF){
ofstream cfile (filename.c_str(),ios::out);
if (cfile.is_open())
{
int sizeR = CostF.r;
for(int i = 0; i < sizeR; i++){
for(int j = 0; j < sizeR; j++){
cfile << CostF[i][j] <<"\t";
}
cfile <<"\n";
}
cfile.close();
}
else
cout << "Unable to open file";
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -