Go to the documentation of this file.
51 void BASE_IMPEXP medianFilter(
const std::vector<double> &inV, std::vector<double> &outV,
const int &winSize,
const int &numberOfSigmas = 2 );
53 #ifdef HAVE_LONG_DOUBLE
63 template<
typename T,
typename VECTOR>
64 void linspace(T first,T last,
size_t count, VECTOR &out_vector)
68 out_vector.assign(count,last);
73 out_vector.resize(count);
74 const T incr = (last-first)/T(count-1);
76 for (
size_t i=0;i<count;i++,c+=incr)
82 template<
class T,T STEP>
85 std::vector<T> ret(length);
86 if (!length)
return ret;
88 while (length--) { ret[i++]=first; first+=STEP; }
95 template<
class VEC1,
class VEC2>
98 typename VEC1::Scalar total=0;
99 const size_t N = v.size();
100 for (
size_t i=0;i<N;i++)
102 total = std::sqrt(total);
105 out_v = v * (1.0/total);
107 else out_v.assign(v.size(),0);
116 template <
class VECTOR_OF_VECTORS,
class VECTORLIKE>
119 const size_t N = data.size();
120 out_column.resize(N);
121 for (
size_t i=0;i<N;i++)
122 out_column[i]=data[i][colIndex];
159 const float &stdCount,
160 const std::string &style = std::string(
"b"),
161 const size_t &nEllipsePoints = 30 );
174 const float &stdCount,
175 const std::string &style = std::string(
"b"),
176 const size_t &nEllipsePoints = 30 );
188 template <
typename EIGEN_VECTOR,
typename At,
size_t N>
189 EIGEN_VECTOR&
loadVector(EIGEN_VECTOR &v, At (&theArray)[N] )
192 v.derived().resize(N);
193 for (
size_t i=0; i < N; i++)
194 (v.derived())[i] =
static_cast<typename EIGEN_VECTOR::Scalar
>(theArray[i]);
198 template <
typename T,
typename At,
size_t N>
199 std::vector<T>&
loadVector( std::vector<T> &v, At (&theArray)[N] )
203 for (
size_t i=0; i < N; i++)
204 v[i] =
static_cast<T
>(theArray[i]);
217 template <
size_t N,
typename T>
228 for (
size_t i=1;i<N;i++)
229 ret.push_back( va_arg(args,T) );
249 template <
class TRIPLET>
252 #if defined(_MSC_VER) && (_MSC_VER>=1400) // Use a secure version in Visual Studio 2005+
254 if (0!=::fopen_s(&f,sFile.c_str(),
"wt")) f= NULL;
256 FILE *f=
::fopen(sFile.c_str(),
"wt");
259 if (!f)
return false;
261 for (
size_t i=0;i<tri.size();i++)
262 fprintf(f,
"%u %u %e\n", 1+tri[i].row(), 1+tri[i].col(), tri[i].value() );
CMatrixTemplateNumeric< double > CMatrixDouble
Declares a matrix of double numbers (non serializable).
#define THROW_EXCEPTION(msg)
CMatrixTemplateNumeric< float > CMatrixFloat
Declares a matrix of float numbers (non serializable).
std::vector< T > sequenceStdVec(T first, size_t length)
Generates a sequence of values [first,first+STEP,first+2*STEP,...].
bool saveEigenSparseTripletsToFile(const std::string &sFile, std::vector< TRIPLET > &tri)
Saves to a plain-text file the nonzero entries of a Eigen sparse matrix, represented as a vector of t...
int BASE_IMPEXP void BASE_IMPEXP fclose(FILE *f)
An OS-independent version of fscanf.
double mean(const CONTAINER &v)
Computes the mean value of a vector.
#define MRPT_NO_THROWS
Used after member declarations.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
dynamic_vector< double > CVectorDouble
Column vector, like Eigen::MatrixXd, but automatically initialized to zeros since construction.
T round2up(T val)
Round up to the nearest power of two of a given number.
int BASE_IMPEXP fprintf(FILE *fil, const char *format,...) MRPT_NO_THROWS MRPT_printf_format_check(2
An OS-independent version of fprintf.
double BASE_IMPEXP factorial(unsigned int n)
Computes the factorial of an integer number and returns it as a double value (internally it uses loga...
#define MRPT_COMPILE_TIME_ASSERT(f)
void linspace(T first, T last, size_t count, VECTOR &out_vector)
Generates an equidistant sequence of numbers given the first one, the last one and the desired number...
std::string BASE_IMPEXP MATLAB_plotCovariance2D(const CMatrixFloat &cov22, const CVectorFloat &mean, const float &stdCount, const std::string &style=std::string("b"), const size_t &nEllipsePoints=30)
Generates a string with the MATLAB commands required to plot an confidence interval (ellipse) for a 2...
bool BASE_IMPEXP isNaN(float f) MRPT_NO_THROWS
Returns true if the number is NaN.
FILE BASE_IMPEXP * fopen(const char *fileName, const char *mode) MRPT_NO_THROWS
An OS-independent version of fopen.
T square(const T x)
Inline function for the square of a number.
void BASE_IMPEXP medianFilter(const std::vector< double > &inV, std::vector< double > &outV, const int &winSize, const int &numberOfSigmas=2)
dynamic_vector< float > CVectorFloat
Column vector, like Eigen::MatrixXf, but automatically initialized to zeros since construction.
bool BASE_IMPEXP loadVector(utils::CFileStream &f, std::vector< int > &d)
Loads one row of a text file as a numerical std::vector.
uint64_t BASE_IMPEXP factorial64(unsigned int n)
Computes the factorial of an integer number and returns it as a 64-bit integer number.
void normalize(const VEC1 &v, VEC2 &out_v)
Normalize a vector, such as its norm is the unity.
void extractColumnFromVectorOfVectors(const size_t colIndex, const VECTOR_OF_VECTORS &data, VECTORLIKE &out_column)
Extract a column from a vector of vectors, and store it in another vector.
std::vector< T > make_vector(const T val1,...)
A versatile template to build vectors on-the-fly in a style close to MATLAB's v=[a b c d ....
bool BASE_IMPEXP isFinite(float f) MRPT_NO_THROWS
Returns true if the number is non infinity.
Page generated by Doxygen 1.8.17 for MRPT 1.4.0 SVN: at Tue Mar 3 09:15:16 UTC 2020 | | |