1 #include "vectorFunctions.h"
4 vectorFunctions::vectorFunctions()
8 vectorFunctions::~vectorFunctions()
12 //---------------------------------------------------------------
13 //Copy Vector1 in Vector2 (double)
14 void vectorFunctions::copyVector(std::vector<double>*Vector1,std::vector<double>*Vector2)
16 int size = Vector1->size();
23 Vector2->push_back( (*Vector1)[i] );
27 //---------------------------------------------------------------
28 //Copy Vector1 in Vector2 (int)
29 void vectorFunctions::copyintVector(std::vector<int>*Vector1,std::vector<int>*Vector2)
31 int size = Vector1->size();
38 Vector2->push_back( (*Vector1)[i] );
42 //------------------------------------------------------------------------------------------------------------------------------------------
43 //Print 2 vectors of the same size
44 void vectorFunctions::printVector(std::vector<double>*Vector1,std::vector<double>*Vector2)
47 if( Vector1->size() == Vector2->size() )
49 for(i=0; i<Vector1->size(); i++)
51 printf("\n v1(%d) = %f, v2(%d) = %f",i,(*Vector1)[i],i,(*Vector2)[i]);
55 //------------------------------------------------------------------------------------------------------------------------------------------
56 //Returns the average value of the vector
57 double vectorFunctions::promVector(std::vector<double>*Vector1, bool OnNormal)
61 std::vector<double> tempv;
62 int size = Vector1->size();
69 suma = suma + (*Vector1)[i];
71 return prom = suma/Vector1->size();
75 copyVector(Vector1,&tempv);
78 pos = maxVector(Vector1,&maxval);
81 tempv.push_back((*Vector1)[i]/maxval);
84 for(i=0; i<tempv.size(); i++)
86 suma = suma + tempv[i];
88 return prom = suma/tempv.size();
93 //------------------------------------------------------------------------------------------------------------------------------------------
94 //Returns the maximum value of the vector
95 int vectorFunctions::maxVector(std::vector<double>*Vector1,double *val)
99 if(Vector1->size() != 0)
101 for(i=0; i<Vector1->size(); i++)
103 if( (*Vector1)[i]>max )
114 //------------------------------------------------------------------------------------------------------------------------------------------
115 //Returns the minimum value of the vector
116 int vectorFunctions::minVector(std::vector<double>*Vector1,double *val)
120 if(Vector1->size() != 0)
122 for(i=0; i<Vector1->size(); i++)
124 if( (*Vector1)[i]<min )
135 //------------------------------------------------------------------------------------------------------------------------------------------
136 //Find the minimal distance between an input point and an input lists of points
137 int vectorFunctions::nearPoint(std::vector<double>*VectorX, std::vector<double>*VectorY, double px, double py)
140 double min = 10000, dist;
141 if(VectorX->size() != 0)
143 for(i=0; i<VectorX->size(); i++)
145 dist = sqrt(pow(px-(*VectorX)[i],2) + pow(py-(*VectorY)[i],2));
156 //------------------------------------------------------------------------------------------------------------------------------------------
157 //Returns the position of the point in the lsts. (Aprox. + or - 1).
158 int vectorFunctions::findPointInLst(std::vector<double>*vecX, std::vector<double>*vecY, std::vector<double>*vecZ,
159 double x, double y, double z)
163 if(vecX->size() != 0)
165 for(i=0; i<vecX->size(); i++)
167 if( ((*vecX)[i]-apr <= x)&&(x <=(*vecX)[i]+apr)&&((*vecY)[i]-apr <= y)&&(y <=(*vecY)[i]+apr)&&((*vecZ)[i]-apr <= z)&&(z <=(*vecZ)[i]+apr) )