コード例 #1
0
 std::vector<double> eigenToStdVector(const Eigen::VectorXd& eigenV,
                                 int initialPose,
                                 int length)
 {
   if ( length == - 1)
     length = eigenV.size() - initialPose;
   std::vector<double> stdVector(length);
   for (int i = initialPose; i < initialPose + length; ++i)
     stdVector[i - initialPose] = eigenV[i];
   return stdVector;
 }
コード例 #2
0
 std::vector<double> vispToStdVector(const vpColVector& vpVector,
                                 int initialPose,
                                 int length)
 {
   if ( length == - 1)
     length = vpVector.size() - initialPose;
   std::vector<double> stdVector(length);
   for (int i = initialPose; i < initialPose + length; ++i)
     stdVector[i - initialPose] = vpVector[i];
   return stdVector;
 }
コード例 #3
0
ファイル: vec.cpp プロジェクト: Wflying1224/K2-data-scripts
typename aol::Vector<_DataType>::RealType aol::Vector<_DataType>::getMedianValue ( ) const {
  const int sz = this->size();
  std::vector< DataType > stdVector ( sz );
  for ( int i = 0; i < sz; ++i ) {
    stdVector[i] = (*this)[i];
  }
  std::sort ( stdVector.begin(), stdVector.end() );
  RealType ret;
  if ( sz == 0 ) {
    throw aol::Exception ( "Cannot compute median of empty vector", __FILE__, __LINE__ );
  } else if ( sz % 2 == 1 ) { // for odd size, take central value
    ret = static_cast<RealType> ( stdVector[ sz/2 ] );
  } else { // for even size, take arithmetic mean of two central values
    ret = static_cast<RealType> ( stdVector[ sz/2 - 1 ] + stdVector [ sz/2 ] ) / 2;
  }
  return ( ret );
}