Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: RoboticArm DXL_SDK_Porting_Test
Fork of Matrix by
Diff: Matrix.h
- Revision:
- 1:48f417da268e
- Parent:
- 0:3abd8c2d7c34
- Child:
- 2:493402568a5e
--- a/Matrix.h Fri Sep 23 21:12:17 2011 +0000
+++ b/Matrix.h Mon Sep 26 03:23:35 2011 +0000
@@ -9,10 +9,12 @@
*
*/
+#ifndef MATRIX_H
+#define MATRIX_H
+
#include <vector>
-#ifndef MATRIX_H
-#define MATRIX_H
+using namespace std;
/**
* @brief This class is intended to provide basic functionality to a Matrix like vector
@@ -32,7 +34,7 @@
* myMatrix.print(); // Re-prints Matrix
*
* Matrix anotherMatrix (3); // Squared 3x3 Matrix
- * anotherMatrix = myMatrix; // Re-Sizes 'anotherMatrix' to fit myMatrix
+ * anotherMatrix = myMatrix; // Re-Sizes 'anotherMatrix' to fit myMatrix and copies data.
* anotherMatrix += myMatrix; // Adds one-by-one elements and saves to anotherMatrix
* anotherMatrix.print();
* @endcode
@@ -44,7 +46,7 @@
/// Creates a nex Matrix of Size [ Row x Cols ]
Matrix( int Rows, int Cols );
- /// Creats a Square Matrix o Size [ Roxs x Rows ]
+ /// Creats a Square Matrix o Size [ Rows x Rows ]
Matrix( int Rows );
@@ -57,14 +59,15 @@
- /** @brief Description:
+ /** @brief
* This is the '=' Overloaded operator. It RESIZES assigned the matrix.
* Overwrites all data. To be used Carefully!
*/
Matrix& operator = ( const Matrix &rightM );
- /**@brief Description:
+
+ /** @brief
* Overload opeartor for the compare Matrices
*
* @param rightM
@@ -74,7 +77,7 @@
- /**@brief Description:
+ /** @brief
* Overload opeartor for the compare Matrices
*
* @param rightM
@@ -82,8 +85,9 @@
*/
bool operator != ( const Matrix &rightM );
- /**@brief
- * Description:
+
+
+ /** @brief
* Overload Copmpound assignment.
* @param rightM
* @return A new Matrix to be assigned to itself.
@@ -92,8 +96,7 @@
- /**@brief
- * Description:
+ /** @brief
* Overload Compund decrease.
* @param rightM Right hand matrix
* @return A new Matrix to be assigned to itself
@@ -102,58 +105,25 @@
- /**@brief
- * Description:
+ /** @brief
* Overloads the Plus, returns a new object.
* @param rightM right side Matrix
* @return Retuns an instance of the answer.
*/
const Matrix operator +( const Matrix &rightM );
+
- /**@brief
- * Description:
+ /** @brief
* Overloads the Minus, returns a new object
* @param rightM
* @return Returns an instance of the asnwer
*/
const Matrix operator -( const Matrix &rightM );
-
-
- /** @brief
- * Description:
- * This method extracts a Row from a Matrix.
- * If Row is out of the parameters, it returns
- * an empty Row and prints a warning
- * @param Matrix: Matrix to extract from
- * @param Row: row number of the matrix
- */
- Matrix GetRow(Matrix mat, int Row);
-
-
-
+
+
/** @brief
- * Description:
- * This method extracts a Column from a Matrix.
- * If Row is out of the parameters, it returns
- * an empty Column and prints a warning
- */
- Matrix GetCol(Matrix mat, int Col);
-
-
-
- /** @brief
- * Description:
- * Shatters the matrix into a single Row Vector.
- * Important: Returns NEW matrix, does no modify existing one.
- */
- Matrix ToPackedVector();
-
-
-
- /** @brief
- * Description:
* Returns TRUE if the matrix is zero, FALSE otherwhise
* @param mat: Matrix to be tested
*/
@@ -162,25 +132,30 @@
/** @brief
- * Description:
* Determines weather a Matrix is a Single Column or Row.
*/
bool isVector();
+
+ /** @brief
+ * Shatters the matrix into a single Row Vector.
+ * Important: Returns NEW matrix, does no modify existing one.
+ */
+ Matrix ToPackedVector();
- /**@brief
- * Description:
+
+
+ /** @brief
* Determines if two matrices are equal.
* @param mat1: First Matrix
* @param mat2: Sencond Matrix
*/
- static const bool Equals( Matrix mat1, Matrix mat2 );
+ static bool Equals( const Matrix mat1, const Matrix mat2 );
/**@brief
- * Description:
* This Funcrions instanciates a new Row Matrix. Since this is a
* static function it needs to be assigned to an Empy Matrix Object
* @param Rows: Number of Rows
@@ -189,9 +164,7 @@
-
- /**@brief
- * Description:
+ /** @brief
* This function instanciates a new Column Matrix. Since this is a
* static function it needs to be assigned to an Empty Matrix object
* @param Cols: Number of Columns in Matrix
@@ -200,8 +173,7 @@
- /**@brief
- * Description:
+ /** @brief
* This STATIC function Clones two Matrices.
* The Source Matrix can be any Size.
* The Receip Matrix MUST be just initialized
@@ -209,12 +181,30 @@
* @param Source: Base Matrix to Clone.
* @param Receip: Destination shell matrix
*/
- static void Clone( const Matrix &Source, Matrix Receip );
-
+ static void Clone( const Matrix &Source, Matrix &Receip );
+
+ /** @brief
+ * Invoking this static method will increase a Row in Mat in the desired
+ * position.
+ * The current Row will be moved down to allocate space, and all elements will
+ * be initialized to zero in the new row.
+ * @param Mat: Matrix in wich to insert a Row
+ * @param Row: Number of row to insert, starts with one, not zero.
+ */
+ static void AddRow( Matrix &Mat, int Row );
- /**@brief
- * Description:
+
+ /** @brief
+ * Invoking this static method will increase a Column in Matrix in the
+ * desired Position.
+ * @param Mat: Matrix in wich to insert a Column
+ * @param Col: Number of column, strats with one, not zero.
+ */
+ static void AddColumn( Matrix &Mat, int Col );
+
+
+ /** @brief
* Static Function Deletes Row from Matrix, Static to prevent missuse
* @param Mat: Matrix to delete Row from
* @param Row: Number of Row (first Row = 1)
@@ -222,32 +212,43 @@
static void DeleteRow( Matrix &Mat, int Row );
- /**@brief
- * Description:
+ /** @brief
* Static Function Deletes Column from Matrix, it's Static to prevent
* missuse.
* Print error and does nothing if out of limits.
- * @Mat: Matrix to delete column from
* @param Col: Number of Col to delete (first Col = 1)
+ * @param Mat: Matrix to delete from.
*/
static void DeleteCol( Matrix &Mat, int Col );
- /**@brief
- * Description:
- * Assigns a float number to the matrix in position
- *
- * @param number: Number to be set
- * @param Row: Row of Matrix
- * @param Col: Column of Matrix
+
+ /** @brief
+ * This method extracts a Row from a Matrix and Saves it in Mat.
+ * If Row is out of the parameters it does nothing, but prints a warning.
+ * @param Row: number of row to extract elements. this->_nRows.
+ * @param Mat: Matrix to resize if neccesaty and save data.
*/
- void Add( int Row, int Col, float number );
+ void ExportRow( int Row, Matrix &Mat);
+
+
+
+
+
+
+
+ /** @brief
+ * This method extracts a Column from a Matrix and saves it to Mat.
+ * If Row is out of the parameters, it does nothing and prints a warning.
+ * @param Col: number of Column to extract elements. this->_nCols.
+ * @param Mat: Matrix to save data to.
+ */
+ void ExportCol( int Col, Matrix &Mat );
- /**@brief
- * Description:
+ /** @brief
* This function resizes the Matrix to fit new data.
* @param Rows: New Number of Rows
* @param Cols: New numbler of columns
@@ -257,53 +258,64 @@
/** @brief
- * Description:
- * Asks user for numbers to fill the Matrix elements. One by one
+ * Asks user for numbers to fill the Matrix elements, one by one.
+ * It uses printf(); by default the USBTX, USBRX, 9600, 1N8.
*/
void FillMatrix();
/** @brief
- * Description:
- * Makes all values on Matrix object zero.
- */
- void Clear();
-
-
-
- /** @brief
- * Description:
* Prints the entire Matrix
*/
void print();
+
+ /** @brief
+ * Makes all values on Matrix object zero.
+ */
+ void Clear();
- /** \brief
- * Description:
- * Returns the sum of every cell in the Matrix.
+
+ /** @brief
+ * Assigns a float number to the matrix in a specified position
+ * Index starts at [1][1].
+ *
+ * @param number: Number to be set
+ * @param Row: Row of Matrix
+ * @param Col: Column of Matrix
*/
- float Sum();
+ void add( int Row, int Col, float number );
+
/** @brief
- * Description:
+ * Returns the sum of every cell in the Matrix.
+ */
+ float sum();
+
+
+ /** @brief
* Return the number in position [Row],[Col]
* @param Row = number of row in matrix
* @param Col = number of Col in matrix
* @return Num = float number in matrix
*/
- float GetNumber( int Row, int Col );
+ float getNumber( int Row, int Col );
- /**Retuns the number of Columns in Matrix*/
+ /**@brief
+ * Retuns the number of Columns in Matrix
+ */
int getCols();
- /**Retruns the number of Rows in Matrix */
+ /**@brief
+ *Retruns the number of Rows in Matrix
+ */
int getRows();
@@ -313,10 +325,10 @@
vector < vector<float> > _matrix;
/** Number of Rows in Matrix*/
- int _Rows;
+ int _nRows;
/**Number of Columns in Matrix*/
- int _Cols;
+ int _nCols;
};
