Main MRPT website > C++ reference
MRPT logo
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes
mrpt::math::CMatrixB Class Reference

Detailed Description

This class is a "CSerializable" wrapper for "CMatrixBool".

Note:
For a complete introduction to Matrices and vectors in MRPT, see: http://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes

#include <mrpt/math/CMatrixB.h>

Inheritance diagram for mrpt::math::CMatrixB:
Inheritance graph
[legend]

List of all members.

Public Types

typedef T value_type
 The type of the matrix elements.
typedef T & reference
typedef const T & const_reference
typedef std::size_t size_type
typedef std::ptrdiff_t difference_type

Public Member Functions

 CMatrixB (size_t row=1, size_t col=1)
 Constructor.
 CMatrixB (const CMatrixBool &m)
 Copy constructor.
CMatrixBoperator= (const CMatrixBool &m)
 Assignment operator for float matrixes.
mrpt::utils::CObjectPtr duplicateGetSmartPtr () const
 Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).
CObjectclone () const
 Cloning interface for smart pointers.
template<size_t N>
void ASSERT_ENOUGHROOM (size_t r, size_t c) const
 Checks whether the rows [r-N,r+N] and the columns [c-N,c+N] are present in the matrix.
void fillAll (const T &val)
void swap (CMatrixTemplate< T > &o)
 Swap with another matrix very efficiently (just swaps a pointer and two integer values).
size_t getRowCount () const
 Number of rows in the matrix.
size_t getColCount () const
 Number of columns in the matrix.
CMatrixTemplateSize size () const
 Get a 2-vector with [NROWS NCOLS] (as in MATLAB command size(x))
void setSize (size_t row, size_t col, bool zeroNewElements=false)
 Changes the size of matrix, maintaining the previous contents.
void resize (const CMatrixTemplateSize &siz, bool zeroNewElements=false)
 This method just checks has no effects in this class, but raises an exception if the expected size does not match.
T & operator() (size_t row, size_t col)
 Subscript operator to get/set individual elements.
const T & operator() (size_t row, size_t col) const
 Subscript operator to get individual elements.
T & operator() (size_t ith)
 Subscript operator to get/set an individual element from a row or column matrix.
operator() (size_t ith) const
 Subscript operator to get/set an individual element from a row or column matrix.
CMatrixTemplate< T > operator() (const size_t row1, const size_t row2, const size_t col1, const size_t col2) const
 Subscript operator to get a submatrix.
void set_unsafe (size_t row, size_t col, const T &v)
 Fast but unsafe method to write a value in the matrix.
const T & get_unsafe (size_t row, size_t col) const
 Fast but unsafe method to read a value from the matrix.
T & get_unsafe (size_t row, size_t col)
 Fast but unsafe method to get a reference from the matrix.
T * get_unsafe_row (size_t row)
 Fast but unsafe method to obtain a pointer to a given row of the matrix (Use only in time critical applications)
const T * get_unsafe_row (size_t row) const
 Fast but unsafe method to obtain a pointer to a given row of the matrix (Use only in critical applications)
void extractSubmatrix (const size_t row1, const size_t row2, const size_t col1, const size_t col2, CMatrixTemplate< T > &out) const
 Get a submatrix, given its bounds.
template<class Derived >
void extractSubmatrix (const size_t row1, const size_t row2, const size_t col1, const size_t col2, Eigen::MatrixBase< Derived > &out) const
void extractRows (size_t firstRow, size_t lastRow, CMatrixTemplate< T > &out) const
 Gets a series of contiguous rows.
void extractColumns (size_t firstCol, size_t lastCol, CMatrixTemplate< T > &out) const
 Gets a series of contiguous columns.
void extractCol (size_t nCol, std::vector< T > &out, int startingRow=0) const
 Returns a given column to a vector (without modifying the matrix)

Exceptions:
std::exceptionOn index out of bounds.

void extractCol (size_t nCol, CMatrixTemplate< T > &out, int startingRow=0) const
 Gets a given column to a vector (without modifying the matrix)

Exceptions:
std::exceptionOn index out of bounds.

void appendRow (const std::vector< T > &in)
 Appends a new row to the MxN matrix from a 1xN vector.
void appendCol (const std::vector< T > &in)
 Appends a new column to the matrix from a vector.
void insertCol (size_t nCol, const std::vector< T > &in)
 Inserts a column from a vector, replacing the current contents of that column.
void getAsVector (std::vector< T > &out) const
 Returns a vector containing the matrix's values.

Static Public Attributes

static const
mrpt::utils::TRuntimeClassId 
classCObject

Protected Member Functions

virtual void writeToStream (mrpt::utils::CStream &out, int *getVersion) const =0
 Introduces a pure virtual method responsible for writing to a CStream.
virtual void readFromStream (mrpt::utils::CStream &in, int version)=0
 Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori.
void realloc (size_t row, size_t col, bool newElementsToZero=false)
 Internal use only: It reallocs the memory for the 2D matrix, maintaining the previous contents if posible.

Protected Attributes

T ** m_Val
size_t m_Rows
size_t m_Cols

RTTI stuff

typedef CMatrixBPtr SmartPtr
static mrpt::utils::CLASSINIT _init_CMatrixB
static mrpt::utils::TRuntimeClassId classCMatrixB
static const
mrpt::utils::TRuntimeClassId
classinfo
static const
mrpt::utils::TRuntimeClassId
_GetBaseClass ()
virtual const
mrpt::utils::TRuntimeClassId
GetRuntimeClass () const
 Returns information about the class of an object in runtime.
virtual mrpt::utils::CObjectduplicate () const
 Returns a copy of the object, indepently of its class.
static mrpt::utils::CObjectCreateObject ()
static CMatrixBPtr Create ()

RTTI stuff

static const
mrpt::utils::TRuntimeClassId 
classCSerializable
class mrpt::utils::CStream

Member Typedef Documentation

typedef const T& mrpt::math::CMatrixTemplate::const_reference [inherited]

Definition at line 66 of file CMatrixTemplate.h.

typedef std::ptrdiff_t mrpt::math::CMatrixTemplate::difference_type [inherited]

Definition at line 68 of file CMatrixTemplate.h.

Definition at line 65 of file CMatrixTemplate.h.

typedef std::size_t mrpt::math::CMatrixTemplate::size_type [inherited]

Definition at line 67 of file CMatrixTemplate.h.

A typedef for the associated smart pointer

Definition at line 50 of file CMatrixB.h.

The type of the matrix elements.

Definition at line 64 of file CMatrixTemplate.h.


Constructor & Destructor Documentation

mrpt::math::CMatrixB::CMatrixB ( size_t  row = 1,
size_t  col = 1 
) [inline]

Constructor.

Definition at line 54 of file CMatrixB.h.

mrpt::math::CMatrixB::CMatrixB ( const CMatrixBool m) [inline]

Copy constructor.

Definition at line 60 of file CMatrixB.h.


Member Function Documentation

static const mrpt::utils::TRuntimeClassId* mrpt::math::CMatrixB::_GetBaseClass ( ) [static, protected]

Reimplemented from mrpt::utils::CSerializable.

void mrpt::math::CMatrixTemplate::appendCol ( const std::vector< T > &  in) [inline, inherited]

Appends a new column to the matrix from a vector.

The length of the vector must match the number of rows of the matrix, unless it is (0,0).

Exceptions:
std::exceptionOn size mismatch.
See also:
extractCol
appendRow

Definition at line 538 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::appendRow ( const std::vector< T > &  in) [inline, inherited]

Appends a new row to the MxN matrix from a 1xN vector.

The lenght of the vector must match the width of the matrix, unless it's empty: in that case the matrix is resized to 1xN.

    CMatrixDouble  M(0,0);
    vector_double  v(7),w(7);
    // ...
    M.appendRow(v);
    M.appendRow(w);
Exceptions:
std::exceptionOn incorrect vector length.
See also:
extractRow
appendCol

Definition at line 509 of file CMatrixTemplate.h.

template<size_t N>
void mrpt::math::CMatrixTemplate::ASSERT_ENOUGHROOM ( size_t  r,
size_t  c 
) const [inline, inherited]

Checks whether the rows [r-N,r+N] and the columns [c-N,c+N] are present in the matrix.

Definition at line 127 of file CMatrixTemplate.h.

CObject* mrpt::utils::CObject::clone ( ) const [inline, inherited]

Cloning interface for smart pointers.

Reimplemented in mrpt::opengl::CRenderizable, and mrpt::opengl::CRenderizableDisplayList.

Definition at line 154 of file CObject.h.

static CMatrixBPtr mrpt::math::CMatrixB::Create ( ) [static]
static mrpt::utils::CObject* mrpt::math::CMatrixB::CreateObject ( ) [static]
virtual mrpt::utils::CObject* mrpt::math::CMatrixB::duplicate ( ) const [virtual]

Returns a copy of the object, indepently of its class.

Implements mrpt::utils::CObject.

mrpt::utils::CObjectPtr mrpt::utils::CObject::duplicateGetSmartPtr ( ) const [inline, inherited]

Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).

Definition at line 151 of file CObject.h.

void mrpt::math::CMatrixTemplate::extractCol ( size_t  nCol,
std::vector< T > &  out,
int  startingRow = 0 
) const [inline, inherited]

Returns a given column to a vector (without modifying the matrix)

Exceptions:
std::exceptionOn index out of bounds.

Definition at line 463 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::extractCol ( size_t  nCol,
CMatrixTemplate< T > &  out,
int  startingRow = 0 
) const [inline, inherited]

Gets a given column to a vector (without modifying the matrix)

Exceptions:
std::exceptionOn index out of bounds.

Definition at line 481 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::extractColumns ( size_t  firstCol,
size_t  lastCol,
CMatrixTemplate< T > &  out 
) const [inline, inherited]

Gets a series of contiguous columns.

Exceptions:
std::logic_errorOn index out of bounds
See also:
extractColumn
extractRows

Definition at line 455 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::extractRows ( size_t  firstRow,
size_t  lastRow,
CMatrixTemplate< T > &  out 
) const [inline, inherited]

Gets a series of contiguous rows.

Exceptions:
std::logic_errorOn index out of bounds
See also:
extractRow
extractColumns

Definition at line 445 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::extractSubmatrix ( const size_t  row1,
const size_t  row2,
const size_t  col1,
const size_t  col2,
CMatrixTemplate< T > &  out 
) const [inline, inherited]

Get a submatrix, given its bounds.

See also:
extractSubmatrixSymmetricalBlocks

Definition at line 412 of file CMatrixTemplate.h.

Referenced by mrpt::math::CMatrixTemplate< TPoint3D >::operator()().

template<class Derived >
void mrpt::math::CMatrixTemplate::extractSubmatrix ( const size_t  row1,
const size_t  row2,
const size_t  col1,
const size_t  col2,
Eigen::MatrixBase< Derived > &  out 
) const [inline, inherited]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 426 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::fillAll ( const T &  val) [inline, inherited]

Fill all the elements with a given value (Note: named "fillAll" since "fill" will be used by child classes)

Definition at line 133 of file CMatrixTemplate.h.

const T& mrpt::math::CMatrixTemplate::get_unsafe ( size_t  row,
size_t  col 
) const [inline, inherited]

Fast but unsafe method to read a value from the matrix.

Definition at line 364 of file CMatrixTemplate.h.

T& mrpt::math::CMatrixTemplate::get_unsafe ( size_t  row,
size_t  col 
) [inline, inherited]

Fast but unsafe method to get a reference from the matrix.

Definition at line 375 of file CMatrixTemplate.h.

T* mrpt::math::CMatrixTemplate::get_unsafe_row ( size_t  row) [inline, inherited]

Fast but unsafe method to obtain a pointer to a given row of the matrix (Use only in time critical applications)

Definition at line 386 of file CMatrixTemplate.h.

const T* mrpt::math::CMatrixTemplate::get_unsafe_row ( size_t  row) const [inline, inherited]

Fast but unsafe method to obtain a pointer to a given row of the matrix (Use only in critical applications)

Definition at line 397 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::getAsVector ( std::vector< T > &  out) const [inline, inherited]

Returns a vector containing the matrix's values.

Definition at line 566 of file CMatrixTemplate.h.

size_t mrpt::math::CMatrixTemplate::getColCount ( ) const [inline, inherited]

Number of columns in the matrix.

See also:
getRowCount, getColCount, nr, nc

Definition at line 250 of file CMatrixTemplate.h.

Referenced by mrpt::math::CMatrixTemplate< TPoint3D >::ASSERT_ENOUGHROOM().

size_t mrpt::math::CMatrixTemplate::getRowCount ( ) const [inline, inherited]

Number of rows in the matrix.

See also:
getRowCount, getColCount, nr, nc

Definition at line 245 of file CMatrixTemplate.h.

Referenced by mrpt::math::CMatrixTemplate< TPoint3D >::ASSERT_ENOUGHROOM().

virtual const mrpt::utils::TRuntimeClassId* mrpt::math::CMatrixB::GetRuntimeClass ( ) const [virtual]

Returns information about the class of an object in runtime.

Reimplemented from mrpt::utils::CSerializable.

void mrpt::math::CMatrixTemplate::insertCol ( size_t  nCol,
const std::vector< T > &  in 
) [inline, inherited]

Inserts a column from a vector, replacing the current contents of that column.

Exceptions:
std::exceptionOn index out of bounds
See also:
extractCol

Definition at line 553 of file CMatrixTemplate.h.

T& mrpt::math::CMatrixTemplate::operator() ( size_t  row,
size_t  col 
) [inline, inherited]

Subscript operator to get/set individual elements.

Definition at line 275 of file CMatrixTemplate.h.

const T& mrpt::math::CMatrixTemplate::operator() ( size_t  row,
size_t  col 
) const [inline, inherited]

Subscript operator to get individual elements.

Definition at line 286 of file CMatrixTemplate.h.

T& mrpt::math::CMatrixTemplate::operator() ( size_t  ith) [inline, inherited]

Subscript operator to get/set an individual element from a row or column matrix.

Exceptions:
std::exceptionIf the object is not a column or row matrix.

Definition at line 298 of file CMatrixTemplate.h.

T mrpt::math::CMatrixTemplate::operator() ( size_t  ith) const [inline, inherited]

Subscript operator to get/set an individual element from a row or column matrix.

Exceptions:
std::exceptionIf the object is not a column or row matrix.

Definition at line 326 of file CMatrixTemplate.h.

CMatrixTemplate<T> mrpt::math::CMatrixTemplate::operator() ( const size_t  row1,
const size_t  row2,
const size_t  col1,
const size_t  col2 
) const [inline, inherited]

Subscript operator to get a submatrix.

Definition at line 403 of file CMatrixTemplate.h.

CMatrixB& mrpt::math::CMatrixB::operator= ( const CMatrixBool m) [inline]

Assignment operator for float matrixes.

Reimplemented from mrpt::math::CMatrixTemplate.

Definition at line 66 of file CMatrixB.h.

References mrpt::math::CMatrixTemplate::operator=().

virtual void mrpt::utils::CSerializable::readFromStream ( mrpt::utils::CStream in,
int  version 
) [protected, pure virtual, inherited]

Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori.

Parameters:
inThe input binary stream where the object data must read from.
versionThe version of the object stored in the stream: use this version number in your code to know how to read the incoming data.
Exceptions:
std::exceptionOn any error, see CStream::ReadBuffer
See also:
CStream

Implemented in mrpt::math::CMatrixD, and mrpt::math::CMatrix.

void mrpt::math::CMatrixTemplate::realloc ( size_t  row,
size_t  col,
bool  newElementsToZero = false 
) [inline, protected, inherited]
void mrpt::math::CMatrixTemplate::resize ( const CMatrixTemplateSize siz,
bool  zeroNewElements = false 
) [inline, inherited]

This method just checks has no effects in this class, but raises an exception if the expected size does not match.

Definition at line 268 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::set_unsafe ( size_t  row,
size_t  col,
const T &  v 
) [inline, inherited]

Fast but unsafe method to write a value in the matrix.

Definition at line 353 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::setSize ( size_t  row,
size_t  col,
bool  zeroNewElements = false 
) [inline, inherited]

Changes the size of matrix, maintaining the previous contents.

Definition at line 262 of file CMatrixTemplate.h.

Referenced by mrpt::math::CMatrixTemplate< TPoint3D >::resize(), and mrpt::poses::CPose2DGridTemplate< double >::getAsMatrix().

CMatrixTemplateSize mrpt::math::CMatrixTemplate::size ( ) const [inline, inherited]

Get a 2-vector with [NROWS NCOLS] (as in MATLAB command size(x))

Definition at line 253 of file CMatrixTemplate.h.

void mrpt::math::CMatrixTemplate::swap ( CMatrixTemplate< T > &  o) [inline, inherited]

Swap with another matrix very efficiently (just swaps a pointer and two integer values).

Definition at line 140 of file CMatrixTemplate.h.

Referenced by mrpt::math::CMatrixTemplate< TPoint3D >::swap().

virtual void mrpt::utils::CSerializable::writeToStream ( mrpt::utils::CStream out,
int *  getVersion 
) const [protected, pure virtual, inherited]

Introduces a pure virtual method responsible for writing to a CStream.

This can not be used directly be users, instead use "stream << object;" for writing it to a stream.

Parameters:
outThe output binary stream where object must be dumped.
getVersionIf NULL, the object must be dumped. If not, only the version of the object dump must be returned in this pointer. This enables the versioning of objects dumping and backward compatibility with previously stored data.
Exceptions:
std::exceptionOn any error, see CStream::WriteBuffer
See also:
CStream

Implemented in mrpt::math::CMatrixD, and mrpt::math::CMatrix.


Friends And Related Function Documentation

friend class mrpt::utils::CStream [friend, inherited]

Member Data Documentation

Definition at line 50 of file CMatrixB.h.

Definition at line 50 of file CMatrixB.h.

Definition at line 139 of file CObject.h.

Definition at line 56 of file CSerializable.h.

Definition at line 50 of file CMatrixB.h.

size_t mrpt::math::CMatrixTemplate::m_Cols [protected, inherited]
size_t mrpt::math::CMatrixTemplate::m_Rows [protected, inherited]
T** mrpt::math::CMatrixTemplate::m_Val [protected, inherited]



Page generated by Doxygen 1.7.5 for MRPT 0.9.5 SVN: at Thu Oct 13 21:25:36 UTC 2011