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


C++ MatrixBase::rowwise方法代码示例

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


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

示例1: normalize_row_sums

IGL_INLINE void igl::normalize_row_sums(
  const Eigen::MatrixBase<DerivedA>& A,
  Eigen::MatrixBase<DerivedB> & B)
{
#ifndef NDEBUG
  // loop over rows
  for(int i = 0; i < A.rows();i++)
  {
    typename DerivedB::Scalar sum = A.row(i).sum();
    assert(sum != 0);
  }
#endif
  B = (A.array().colwise() / A.rowwise().sum().array()).eval();
}
开发者ID:Codermay,项目名称:libigl,代码行数:14,代码来源:normalize_row_sums.cpp

示例2:

		Eigen::MatrixBase<Eigen::Matrix<typename matrix::Scalar, matrix::Rows + 1, matrix::Rows + 1>> get_rigid_transform(
			const Eigen::MatrixBase<matrix>& a,
			const Eigen::MatrixBase<matrix>& b)
		{
			Eigen::Matrix<typename matrix::Scalar, matrix::Rows + 1, matrix::Rows + 1> transform = 
				Eigen::Matrix<typename matrix::Scalar, matrix::Rows + 1, matrix::Rows + 1>::Identity();

			auto centroid_a = a.colwise() - a.rowwise().mean();
			auto centroid_b = b.colwise() - b.rowwise().mean();

			auto svd = (centered_a * centered_b.transpose()).eval().jacobiSVD(Eigen::ComputeFullU | Eigen::ComputeFullV);
			auto U = svd.matrixU();
			auto V = svd.matrixV();
			auto R = (V * U.transpose()).eval();
			auto C = Eigen::Matrix<typename matrix::Scalar, matrix::Rows, matrix::Rows>::Identity().eval();
			C(matrix::Rows - 1, matrix::Rows - 1) = R.determinant();
			R = V * C * U.transpose();
			auto T = -R * centroid_a + centroid_b;

			transform.block<matrix::Rows, matrix::Rows>(0, 0) = R;
			transform.block<matrix::Rows, 1>(0, matrix::Rows) = T;

			return transform;
		}
开发者ID:fallfromgrace,项目名称:eigencv,代码行数:24,代码来源:transform.hpp


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