当前位置: 首页>>代码示例>>C++>>正文


C++ MatrixXd::topRows方法代码示例

本文整理汇总了C++中eigen::MatrixXd::topRows方法的典型用法代码示例。如果您正苦于以下问题:C++ MatrixXd::topRows方法的具体用法?C++ MatrixXd::topRows怎么用?C++ MatrixXd::topRows使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在eigen::MatrixXd的用法示例。


在下文中一共展示了MatrixXd::topRows方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: convertToInequalityConstraints

bool Polygon::convertToInequalityConstraints(Eigen::MatrixXd& A, Eigen::VectorXd& b) const
{
  Eigen::MatrixXd V(nVertices(), 2);
  for (unsigned int i = 0; i < nVertices(); ++i)
    V.row(i) = vertices_[i];

  // Create k, a list of indices from V forming the convex hull.
  // TODO: Assuming counter-clockwise ordered convex polygon.
  // MATLAB: k = convhulln(V);
  Eigen::MatrixXi k;
  k.resizeLike(V);
  for (unsigned int i = 0; i < V.rows(); ++i)
    k.row(i) << i, (i+1) % V.rows();
  Eigen::RowVectorXd c = V.colwise().mean();
  V.rowwise() -= c;
  A = Eigen::MatrixXd::Constant(k.rows(), V.cols(), NAN);

  unsigned int rc = 0;
  for (unsigned int ix = 0; ix < k.rows(); ++ix) {
    Eigen::MatrixXd F(2, V.cols());
    F.row(0) << V.row(k(ix, 0));
    F.row(1) << V.row(k(ix, 1));
    Eigen::FullPivLU<Eigen::MatrixXd> luDecomp(F);
    if (luDecomp.rank() == F.rows()) {
      A.row(rc) = F.colPivHouseholderQr().solve(Eigen::VectorXd::Ones(F.rows()));
      ++rc;
    }
  }

  A = A.topRows(rc);
  b = Eigen::VectorXd::Ones(A.rows());
  b = b + A * c.transpose();

  return true;
}
开发者ID:ethz-asl,项目名称:grid_map,代码行数:35,代码来源:Polygon.cpp

示例2: H

Polytope Polytope::operator&( const Polytope &P2 )
{
    assert( this->H.cols() == P2.H.cols() );

    Eigen::MatrixXd H( this->H.rows() + P2.H.rows(), this->H.cols() );
    Eigen::VectorXd K( this->H.rows() + P2.H.rows(), 1 );

    H.topRows( this->H.rows() ) = this->H;
    K.topRows( this->H.rows() ) = this->K;
    H.bottomRows( P2.H.rows() ) = P2.H;
    K.bottomRows( P2.H.rows() ) = P2.K;

    return Polytope( H, K );
}
开发者ID:cmcghan,项目名称:fmrbenchmark,代码行数:14,代码来源:polytope.hpp


注:本文中的eigen::MatrixXd::topRows方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。