Doc: add an example for HouseholderQR::householderQ()

This commit is contained in:
Gael Guennebaud 2012-07-02 16:33:32 +02:00
parent eee34f2da4
commit 9a97dac4d9
2 changed files with 15 additions and 0 deletions

View File

@ -128,6 +128,14 @@ template<typename _MatrixType> class HouseholderQR
return internal::solve_retval<HouseholderQR, Rhs>(*this, b.derived()); return internal::solve_retval<HouseholderQR, Rhs>(*this, b.derived());
} }
/** This method returns an expression of the unitary matrix Q as a sequence of Householder transformations.
*
* The returned expression can directly be used to perform matrix products. It can also be assigned to a dense Matrix object.
* Here is an example showing how to recover the full or thin matrix Q, as well as how to perform matrix products using operator*:
*
* Example: \include HouseholderQR_householderQ.cpp
* Output: \verbinclude HouseholderQR_householderQ.out
*/
HouseholderSequenceType householderQ() const HouseholderSequenceType householderQ() const
{ {
eigen_assert(m_isInitialized && "HouseholderQR is not initialized."); eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");

View File

@ -0,0 +1,7 @@
MatrixXf A(MatrixXf::Random(5,3)), thinQ(MatrixXf::Identity(5,3)), Q;
A.setRandom();
HouseholderQR<MatrixXf> qr(A);
Q = qr.householderQ();
thinQ = qr.householderQ() * thinQ;
std::cout << "The complete unitary matrix Q is:\n" << Q << "\n\n";
std::cout << "The thin matrix Q is:\n" << thinQ << "\n\n";