Main MRPT website > C++ reference for MRPT 1.4.0
List of all members | Public Types | Public Member Functions | 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

Definition at line 26 of file CMatrixB.h.

#include <mrpt/math/CMatrixB.h>

Inheritance diagram for mrpt::math::CMatrixB:
Inheritance graph

Public Types

typedef bool value_type
 The type of the matrix elements.
 
typedef bool & reference
 
typedef const bool & 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.
 
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 bool &val)
 
void swap (CMatrixTemplate< bool > &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.
 
bool & operator() (size_t row, size_t col)
 Subscript operator to get/set individual elements.
 
const bool & operator() (size_t row, size_t col) const
 Subscript operator to get individual elements.
 
bool & operator() (size_t ith)
 Subscript operator to get/set an individual element from a row or column matrix.
 
bool operator() (size_t ith) const
 Subscript operator to get/set an individual element from a row or column matrix.
 
CMatrixTemplate< bool > 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 bool &v)
 Fast but unsafe method to write a value in the matrix.
 
const bool & get_unsafe (size_t row, size_t col) const
 Fast but unsafe method to read a value from the matrix.
 
bool & get_unsafe (size_t row, size_t col)
 Fast but unsafe method to get a reference from the matrix.
 
bool * 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 bool * 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< bool > &out) const
 Get a submatrix, given its bounds.
 
void extractSubmatrix (const size_t row1, const size_t row2, const size_t col1, const size_t col2, EIGEN_MATRIX &out) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void extractRows (size_t firstRow, size_t lastRow, CMatrixTemplate< bool > &out) const
 Gets a series of contiguous rows.
 
void extractColumns (size_t firstCol, size_t lastCol, CMatrixTemplate< bool > &out) const
 Gets a series of contiguous columns.
 
void extractCol (size_t nCol, std::vector< bool > &out, int startingRow=0) const
 Returns a given column to a vector (without modifying the matrix)
 
void extractCol (size_t nCol, CMatrixTemplate< bool > &out, int startingRow=0) const
 Gets a given column to a vector (without modifying the matrix)
 
void appendRow (const std::vector< bool > &in)
 Appends a new row to the MxN matrix from a 1xN vector.
 
void appendCol (const std::vector< bool > &in)
 Appends a new column to the matrix from a vector.
 
void insertCol (size_t nCol, const std::vector< bool > &in)
 Inserts a column from a vector, replacing the current contents of that column.
 
void getAsVector (std::vector< bool > &out) const
 Returns a vector containing the matrix's values.
 

Protected Member Functions

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.
 
CSerializable virtual methods
void writeToStream (mrpt::utils::CStream &out, int *getVersion) const MRPT_OVERRIDE
 
void readFromStream (mrpt::utils::CStream &in, int version) MRPT_OVERRIDE
 

Protected Attributes

bool ** m_Val
 
size_t m_Rows
 
size_t m_Cols
 

RTTI stuff <br>

typedef CMatrixBPtr SmartPtr
 
static mrpt::utils::CLASSINIT _init_CMatrixB
 
static mrpt::utils::TRuntimeClassId classCMatrixB
 
static const mrpt::utils::TRuntimeClassIdclassinfo
 
static const mrpt::utils::TRuntimeClassId_GetBaseClass ()
 
virtual const mrpt::utils::TRuntimeClassIdGetRuntimeClass () const MRPT_OVERRIDE
 
virtual mrpt::utils::CObjectduplicate () const MRPT_OVERRIDE
 
static mrpt::utils::CObjectCreateObject ()
 
static CMatrixBPtr Create ()
 

Member Typedef Documentation

◆ const_reference

typedef const bool & mrpt::math::CMatrixTemplate< bool >::const_reference
inherited

Definition at line 45 of file CMatrixTemplate.h.

◆ difference_type

typedef std::ptrdiff_t mrpt::math::CMatrixTemplate< bool >::difference_type
inherited

Definition at line 47 of file CMatrixTemplate.h.

◆ reference

typedef bool & mrpt::math::CMatrixTemplate< bool >::reference
inherited

Definition at line 44 of file CMatrixTemplate.h.

◆ size_type

typedef std::size_t mrpt::math::CMatrixTemplate< bool >::size_type
inherited

Definition at line 46 of file CMatrixTemplate.h.

◆ SmartPtr

A typedef for the associated smart pointer

Definition at line 29 of file CMatrixB.h.

◆ value_type

typedef bool mrpt::math::CMatrixTemplate< bool >::value_type
inherited

The type of the matrix elements.

Definition at line 43 of file CMatrixTemplate.h.

Constructor & Destructor Documentation

◆ CMatrixB() [1/2]

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

Constructor.

Definition at line 32 of file CMatrixB.h.

◆ CMatrixB() [2/2]

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

Copy constructor.

Definition at line 34 of file CMatrixB.h.

Member Function Documentation

◆ _GetBaseClass()

static const mrpt::utils::TRuntimeClassId * mrpt::math::CMatrixB::_GetBaseClass ( )
staticprotected

◆ appendCol()

void mrpt::math::CMatrixTemplate< bool >::appendCol ( const std::vector< bool > &  in)
inlineinherited

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 517 of file CMatrixTemplate.h.

◆ appendRow()

void mrpt::math::CMatrixTemplate< bool >::appendRow ( const std::vector< bool > &  in)
inlineinherited

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.

CVectorDouble v(7),w(7);
// ...
M.appendRow(v);
M.appendRow(w);
Column vector, like Eigen::MatrixX*, but automatically initialized to zeros since construction.
Definition: types_math.h:65
Exceptions
std::exceptionOn incorrect vector length.
See also
extractRow
appendCol

Definition at line 488 of file CMatrixTemplate.h.

◆ ASSERT_ENOUGHROOM()

void mrpt::math::CMatrixTemplate< bool >::ASSERT_ENOUGHROOM ( size_t  r,
size_t  c 
) const
inlineinherited

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

Definition at line 106 of file CMatrixTemplate.h.

◆ Create()

static CMatrixBPtr mrpt::math::CMatrixB::Create ( )
static

◆ CreateObject()

static mrpt::utils::CObject * mrpt::math::CMatrixB::CreateObject ( )
static

◆ duplicate()

virtual mrpt::utils::CObject * mrpt::math::CMatrixB::duplicate ( ) const
virtual

◆ extractCol() [1/2]

void mrpt::math::CMatrixTemplate< bool >::extractCol ( size_t  nCol,
CMatrixTemplate< bool > &  out,
int  startingRow = 0 
) const
inlineinherited

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

Exceptions
std::exceptionOn index out of bounds

Definition at line 460 of file CMatrixTemplate.h.

◆ extractCol() [2/2]

void mrpt::math::CMatrixTemplate< bool >::extractCol ( size_t  nCol,
std::vector< bool > &  out,
int  startingRow = 0 
) const
inlineinherited

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

Exceptions
std::exceptionOn index out of bounds

Definition at line 442 of file CMatrixTemplate.h.

◆ extractColumns()

void mrpt::math::CMatrixTemplate< bool >::extractColumns ( size_t  firstCol,
size_t  lastCol,
CMatrixTemplate< bool > &  out 
) const
inlineinherited

Gets a series of contiguous columns.

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

Definition at line 434 of file CMatrixTemplate.h.

◆ extractRows()

void mrpt::math::CMatrixTemplate< bool >::extractRows ( size_t  firstRow,
size_t  lastRow,
CMatrixTemplate< bool > &  out 
) const
inlineinherited

Gets a series of contiguous rows.

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

Definition at line 424 of file CMatrixTemplate.h.

◆ extractSubmatrix() [1/2]

void mrpt::math::CMatrixTemplate< bool >::extractSubmatrix ( const size_t  row1,
const size_t  row2,
const size_t  col1,
const size_t  col2,
CMatrixTemplate< bool > &  out 
) const
inlineinherited

Get a submatrix, given its bounds.

See also
extractSubmatrixSymmetricalBlocks

Definition at line 391 of file CMatrixTemplate.h.

◆ extractSubmatrix() [2/2]

void mrpt::math::CMatrixTemplate< bool >::extractSubmatrix ( const size_t  row1,
const size_t  row2,
const size_t  col1,
const size_t  col2,
EIGEN_MATRIX &  out 
) const
inlineinherited

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 405 of file CMatrixTemplate.h.

◆ fillAll()

void mrpt::math::CMatrixTemplate< bool >::fillAll ( const bool &  val)
inlineinherited

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

Definition at line 112 of file CMatrixTemplate.h.

◆ get_unsafe() [1/2]

bool & mrpt::math::CMatrixTemplate< bool >::get_unsafe ( size_t  row,
size_t  col 
)
inlineinherited

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

Definition at line 354 of file CMatrixTemplate.h.

◆ get_unsafe() [2/2]

const bool & mrpt::math::CMatrixTemplate< bool >::get_unsafe ( size_t  row,
size_t  col 
) const
inlineinherited

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

Definition at line 343 of file CMatrixTemplate.h.

◆ get_unsafe_row() [1/2]

bool * mrpt::math::CMatrixTemplate< bool >::get_unsafe_row ( size_t  row)
inlineinherited

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

Definition at line 365 of file CMatrixTemplate.h.

◆ get_unsafe_row() [2/2]

const bool * mrpt::math::CMatrixTemplate< bool >::get_unsafe_row ( size_t  row) const
inlineinherited

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

Definition at line 376 of file CMatrixTemplate.h.

◆ getAsVector()

void mrpt::math::CMatrixTemplate< bool >::getAsVector ( std::vector< bool > &  out) const
inlineinherited

Returns a vector containing the matrix's values.

Definition at line 545 of file CMatrixTemplate.h.

◆ getColCount()

size_t mrpt::math::CMatrixTemplate< bool >::getColCount ( ) const
inlineinherited

Number of columns in the matrix.

See also
getRowCount, getColCount, nr, nc

Definition at line 229 of file CMatrixTemplate.h.

◆ getRowCount()

size_t mrpt::math::CMatrixTemplate< bool >::getRowCount ( ) const
inlineinherited

Number of rows in the matrix.

See also
getRowCount, getColCount, nr, nc

Definition at line 224 of file CMatrixTemplate.h.

◆ GetRuntimeClass()

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

◆ insertCol()

void mrpt::math::CMatrixTemplate< bool >::insertCol ( size_t  nCol,
const std::vector< bool > &  in 
)
inlineinherited

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 532 of file CMatrixTemplate.h.

◆ operator()() [1/5]

CMatrixTemplate< bool > mrpt::math::CMatrixTemplate< bool >::operator() ( const size_t  row1,
const size_t  row2,
const size_t  col1,
const size_t  col2 
) const
inlineinherited

Subscript operator to get a submatrix.

Definition at line 382 of file CMatrixTemplate.h.

◆ operator()() [2/5]

bool & mrpt::math::CMatrixTemplate< bool >::operator() ( size_t  ith)
inlineinherited

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 277 of file CMatrixTemplate.h.

◆ operator()() [3/5]

bool mrpt::math::CMatrixTemplate< bool >::operator() ( size_t  ith) const
inlineinherited

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 305 of file CMatrixTemplate.h.

◆ operator()() [4/5]

bool & mrpt::math::CMatrixTemplate< bool >::operator() ( size_t  row,
size_t  col 
)
inlineinherited

Subscript operator to get/set individual elements.

Definition at line 254 of file CMatrixTemplate.h.

◆ operator()() [5/5]

const bool & mrpt::math::CMatrixTemplate< bool >::operator() ( size_t  row,
size_t  col 
) const
inlineinherited

Subscript operator to get individual elements.

Definition at line 265 of file CMatrixTemplate.h.

◆ operator=()

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

Assignment operator for float matrixes.

Definition at line 36 of file CMatrixB.h.

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

◆ readFromStream()

void mrpt::math::CMatrixB::readFromStream ( mrpt::utils::CStream in,
int  version 
)
protected

◆ realloc()

void mrpt::math::CMatrixTemplate< bool >::realloc ( size_t  row,
size_t  col,
bool  newElementsToZero = false 
)
inlineprotectedinherited

Internal use only: It reallocs the memory for the 2D matrix, maintaining the previous contents if posible.

Definition at line 56 of file CMatrixTemplate.h.

◆ resize()

void mrpt::math::CMatrixTemplate< bool >::resize ( const CMatrixTemplateSize siz,
bool  zeroNewElements = false 
)
inlineinherited

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

Definition at line 247 of file CMatrixTemplate.h.

◆ set_unsafe()

void mrpt::math::CMatrixTemplate< bool >::set_unsafe ( size_t  row,
size_t  col,
const bool &  v 
)
inlineinherited

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

Definition at line 332 of file CMatrixTemplate.h.

◆ setSize()

void mrpt::math::CMatrixTemplate< bool >::setSize ( size_t  row,
size_t  col,
bool  zeroNewElements = false 
)
inlineinherited

Changes the size of matrix, maintaining the previous contents.

Definition at line 241 of file CMatrixTemplate.h.

◆ size()

CMatrixTemplateSize mrpt::math::CMatrixTemplate< bool >::size ( ) const
inlineinherited

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

Definition at line 232 of file CMatrixTemplate.h.

◆ swap()

void mrpt::math::CMatrixTemplate< bool >::swap ( CMatrixTemplate< bool > &  o)
inlineinherited

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

Definition at line 119 of file CMatrixTemplate.h.

◆ writeToStream()

void mrpt::math::CMatrixB::writeToStream ( mrpt::utils::CStream out,
int *  getVersion 
) const
protected

Member Data Documentation

◆ _init_CMatrixB

mrpt::utils::CLASSINIT mrpt::math::CMatrixB::_init_CMatrixB
staticprotected

Definition at line 29 of file CMatrixB.h.

◆ classCMatrixB

mrpt::utils::TRuntimeClassId mrpt::math::CMatrixB::classCMatrixB
static

Definition at line 29 of file CMatrixB.h.

◆ classinfo

const mrpt::utils::TRuntimeClassId* mrpt::math::CMatrixB::classinfo
static

Definition at line 29 of file CMatrixB.h.

◆ m_Cols

size_t mrpt::math::CMatrixTemplate< bool >::m_Cols
protectedinherited

Definition at line 52 of file CMatrixTemplate.h.

◆ m_Rows

size_t mrpt::math::CMatrixTemplate< bool >::m_Rows
protectedinherited

Definition at line 52 of file CMatrixTemplate.h.

◆ m_Val

bool ** mrpt::math::CMatrixTemplate< bool >::m_Val
protectedinherited

Definition at line 51 of file CMatrixTemplate.h.




Page generated by Doxygen 1.9.6 for MRPT 1.4.0 SVN: at Fri Jan 20 00:45:34 UTC 2023