//--------------------------------------------------------------------------- double TfrmCalcParameter::thermalDAP2(double* TT,int* day,double Time,int ndays) // con Time { double dap; myData* data=new myData[ndays]; for(int i=0;i<ndays;i++) { (data+i)->x=day[i]; (data+i)->y=TT[i]; } if (Time < TT[0]) dap = day[0]; if (Time > TT[ndays-1]) { leastSqrRegression(data,ndays); // aqui falta implementar esta funcion //dap <- as.numeric(predict(model, data.frame(Time))) } if ((Time >= TT[0]) && (Time <= TT[ndays-1])) { int i = 0; while (TT[i] < Time) { i = i + 1; } if (i < ndays-1) { double medio = (TT[i] + TT[i - 1])/2.0; if (medio - TT[i - 1] > TT[i] - medio) dap = day[i]; else dap = day[i - 1]; } else dap = day[i - 1]; } delete []data; return dap; }
//--------------------------------------------------------------------------- double TfrmCalcParameter::thermalDAP1(double* TT,int* day,double dap,int ndays) // con dato de entrada dap la salida es Time { myData* data=new myData[ndays]; for(int i=0;i<ndays;i++) { (data+i)->x=day[i]; (data+i)->y=TT[i]; } dap = round(dap); double Time; if(dap<day[0]) Time=0.0; if (dap > day[ndays-1]) { leastSqrRegression(data,ndays); // aqui falta implementar esta funcion // Time <- as.numeric(predict(model, data.frame(dap))) } if(dap>=day[0] && dap<=day[ndays-1]) { for(int i=0;i<ndays;i++) { if(day[i]==dap) { Time=TT[i]; break; } } } delete []data; return Time; }
void TrackedObject::evaluateParameters(void){ //Storing mag of distance vector (squared) divided by the frames object was there. speed = ( pow(positions[0][0] - positions[positions.size() - 1][0], 2) + pow(positions[0][1] - positions[positions.size() - 1][1], 2) ) / (lastFrame - firstFrame); double* regCoeff = leastSqrRegression(positions); intercept = regCoeff[0]; slope = regCoeff[1]; }
/** * return 1 if OK, return 0 if error */ int LR::evaluate(float &slope,float &avgY){ int res = 0; int items; struct Point *data = prepareData (items); if (items > 2 && data != NULL){ slope = leastSqrRegression(data, items); avgY = this->AVGy; res = 1; } delete data; return res; }