Sample of program breaking when a certain set of source files are in a folder, but is fine when it is in the root. In this case, it is tested with RF12B.cpp, RF12B.h and rfdefs

Dependencies:   mbed

Committer:
narshu
Date:
Sun Mar 25 13:39:11 2012 +0000
Revision:
0:349dc9b0984f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
narshu 0:349dc9b0984f 1 /**
narshu 0:349dc9b0984f 2 * @brief Source Code for the Matrix Class.
narshu 0:349dc9b0984f 3 * @file Matrix.cpp
narshu 0:349dc9b0984f 4 * @author Ernesto Palacios
narshu 0:349dc9b0984f 5 *
narshu 0:349dc9b0984f 6 * Created on September 2011.
narshu 0:349dc9b0984f 7 *
narshu 0:349dc9b0984f 8 * Develop Under GPL v3.0 License
narshu 0:349dc9b0984f 9 * http://www.gnu.org/licenses/gpl-3.0.html
narshu 0:349dc9b0984f 10 *
narshu 0:349dc9b0984f 11 */
narshu 0:349dc9b0984f 12
narshu 0:349dc9b0984f 13 #include "mbed.h"
narshu 0:349dc9b0984f 14 #include "Matrix.h"
narshu 0:349dc9b0984f 15
narshu 0:349dc9b0984f 16 /// Rows by Cols Matrix Constructor
narshu 0:349dc9b0984f 17 Matrix::Matrix(int Rows, int Cols): _nRows(Rows), _nCols(Cols)
narshu 0:349dc9b0984f 18 {
narshu 0:349dc9b0984f 19 _matrix.resize(_nRows);
narshu 0:349dc9b0984f 20 for( int i = 0; i < _nRows; i++ )
narshu 0:349dc9b0984f 21 _matrix[i].resize(_nCols);
narshu 0:349dc9b0984f 22
narshu 0:349dc9b0984f 23 _pRow = 0;
narshu 0:349dc9b0984f 24 _pCol = 0;
narshu 0:349dc9b0984f 25
narshu 0:349dc9b0984f 26 this->Clear(); //Make all elements zero by default.
narshu 0:349dc9b0984f 27 }
narshu 0:349dc9b0984f 28
narshu 0:349dc9b0984f 29
narshu 0:349dc9b0984f 30 /// Copies one matrix into a new one
narshu 0:349dc9b0984f 31 Matrix::Matrix(const Matrix& base)
narshu 0:349dc9b0984f 32 {
narshu 0:349dc9b0984f 33 _nCols = base._nCols;
narshu 0:349dc9b0984f 34 _nRows = base._nRows;
narshu 0:349dc9b0984f 35
narshu 0:349dc9b0984f 36 _pRow = base._pRow;
narshu 0:349dc9b0984f 37 _pCol = base._pCol;
narshu 0:349dc9b0984f 38
narshu 0:349dc9b0984f 39 _matrix.resize(_nRows);
narshu 0:349dc9b0984f 40 for( int i = 0; i < _nRows; i++ )
narshu 0:349dc9b0984f 41 _matrix[i].resize(_nCols);
narshu 0:349dc9b0984f 42
narshu 0:349dc9b0984f 43 for( int i = 0; i < _nRows; i++ )
narshu 0:349dc9b0984f 44 for( int j = 0; j < _nCols; j++ )
narshu 0:349dc9b0984f 45 _matrix[i][j] = base._matrix[i][j];
narshu 0:349dc9b0984f 46 }
narshu 0:349dc9b0984f 47
narshu 0:349dc9b0984f 48
narshu 0:349dc9b0984f 49 /// Default Constructor
narshu 0:349dc9b0984f 50 Matrix::Matrix()
narshu 0:349dc9b0984f 51 {
narshu 0:349dc9b0984f 52 _nCols = 0;
narshu 0:349dc9b0984f 53 _nRows = 0;
narshu 0:349dc9b0984f 54
narshu 0:349dc9b0984f 55 _pRow = 0;
narshu 0:349dc9b0984f 56 _pCol = 0;
narshu 0:349dc9b0984f 57
narshu 0:349dc9b0984f 58 }
narshu 0:349dc9b0984f 59
narshu 0:349dc9b0984f 60 /***********************************************************************/
narshu 0:349dc9b0984f 61
narshu 0:349dc9b0984f 62 /// Returns true if matrix is full of zeros
narshu 0:349dc9b0984f 63 bool Matrix::isZero() const
narshu 0:349dc9b0984f 64 {
narshu 0:349dc9b0984f 65 bool zero = false;
narshu 0:349dc9b0984f 66 for( int i = 0; i < this->_nRows; i++ )
narshu 0:349dc9b0984f 67 for( int j = 0; j < this->_nCols; j++ )
narshu 0:349dc9b0984f 68 if( _matrix[i][j] != 0 )
narshu 0:349dc9b0984f 69 zero = zero || true;
narshu 0:349dc9b0984f 70 return !zero;
narshu 0:349dc9b0984f 71 }
narshu 0:349dc9b0984f 72
narshu 0:349dc9b0984f 73
narshu 0:349dc9b0984f 74 /// Returns true if Matrix is Single Row ot Single Column.
narshu 0:349dc9b0984f 75 bool Matrix::isVector() const
narshu 0:349dc9b0984f 76 {
narshu 0:349dc9b0984f 77 if( _nRows == 1 || _nCols == 1 )
narshu 0:349dc9b0984f 78 return true;
narshu 0:349dc9b0984f 79 else
narshu 0:349dc9b0984f 80 return false;
narshu 0:349dc9b0984f 81 }
narshu 0:349dc9b0984f 82
narshu 0:349dc9b0984f 83 /*************************************************************************/
narshu 0:349dc9b0984f 84
narshu 0:349dc9b0984f 85 /// Returns all elements in Matrix as a single Row vector.
narshu 0:349dc9b0984f 86 const Matrix Matrix::ToPackedVector( const Matrix& Mat )
narshu 0:349dc9b0984f 87 {
narshu 0:349dc9b0984f 88
narshu 0:349dc9b0984f 89 Matrix Crushed( 1, Mat._nRows * Mat._nCols );
narshu 0:349dc9b0984f 90
narshu 0:349dc9b0984f 91 int cont = 0;
narshu 0:349dc9b0984f 92
narshu 0:349dc9b0984f 93 for( int i = 0; i < Mat._nRows; i++ )
narshu 0:349dc9b0984f 94 for( int j = 0; j < Mat._nCols; j++ )
narshu 0:349dc9b0984f 95 {
narshu 0:349dc9b0984f 96 Crushed._matrix[0][cont] = Mat._matrix[i][j];
narshu 0:349dc9b0984f 97 cont++;
narshu 0:349dc9b0984f 98 }
narshu 0:349dc9b0984f 99
narshu 0:349dc9b0984f 100 Crushed._pRow = Crushed._nRows;
narshu 0:349dc9b0984f 101 Crushed._pCol = Crushed._nCols;
narshu 0:349dc9b0984f 102
narshu 0:349dc9b0984f 103 return Crushed;
narshu 0:349dc9b0984f 104 }
narshu 0:349dc9b0984f 105
narshu 0:349dc9b0984f 106
narshu 0:349dc9b0984f 107
narshu 0:349dc9b0984f 108 /// To add (Insert) a Single Row to a Matrix.
narshu 0:349dc9b0984f 109 void Matrix::AddRow(Matrix& Mat, int index)
narshu 0:349dc9b0984f 110 {
narshu 0:349dc9b0984f 111 --index;
narshu 0:349dc9b0984f 112
narshu 0:349dc9b0984f 113 if( index > Mat._nRows + 1)
narshu 0:349dc9b0984f 114 {
narshu 0:349dc9b0984f 115 printf("\n\nERROR:\nRow out of Limits @ AddRow()\n");
narshu 0:349dc9b0984f 116
narshu 0:349dc9b0984f 117 }else{
narshu 0:349dc9b0984f 118
narshu 0:349dc9b0984f 119 Mat._nRows++;
narshu 0:349dc9b0984f 120 Mat._matrix.resize( Mat._nRows );
narshu 0:349dc9b0984f 121
narshu 0:349dc9b0984f 122 Mat._matrix[ Mat._nRows - 1 ].resize( Mat._nCols );
narshu 0:349dc9b0984f 123
narshu 0:349dc9b0984f 124 for( int i = Mat._nRows - 1; i > index; i-- )
narshu 0:349dc9b0984f 125 for( int j = 0; j < Mat._nCols; j++ )
narshu 0:349dc9b0984f 126 Mat._matrix[i][j] = Mat._matrix[i - 1][j];
narshu 0:349dc9b0984f 127
narshu 0:349dc9b0984f 128 for( int j = 0; j < Mat._nCols; j++ )
narshu 0:349dc9b0984f 129 Mat._matrix[index][j] = 0.0;
narshu 0:349dc9b0984f 130 }
narshu 0:349dc9b0984f 131 }
narshu 0:349dc9b0984f 132
narshu 0:349dc9b0984f 133
narshu 0:349dc9b0984f 134 void Matrix::AddRow(Matrix& Receip, const Matrix& Row, int index)
narshu 0:349dc9b0984f 135 {
narshu 0:349dc9b0984f 136 Matrix::AddRow( Receip, index ); //Make Room
narshu 0:349dc9b0984f 137
narshu 0:349dc9b0984f 138 --index;
narshu 0:349dc9b0984f 139 for( int i = 0; i < Receip._nCols; i++ )
narshu 0:349dc9b0984f 140 Receip._matrix[index][i] = Row._matrix[0][i]; //Copy Data.
narshu 0:349dc9b0984f 141
narshu 0:349dc9b0984f 142 }
narshu 0:349dc9b0984f 143
narshu 0:349dc9b0984f 144
narshu 0:349dc9b0984f 145 /// To add (Insert) a single Column to a Matrix
narshu 0:349dc9b0984f 146 void Matrix::AddCol( Matrix& Mat, int index )
narshu 0:349dc9b0984f 147 {
narshu 0:349dc9b0984f 148 --index;
narshu 0:349dc9b0984f 149
narshu 0:349dc9b0984f 150 if( index > Mat._nCols + 1 )
narshu 0:349dc9b0984f 151 {
narshu 0:349dc9b0984f 152 printf("\n\nERROR:\nRow out of Limits on AddCol()\n");
narshu 0:349dc9b0984f 153
narshu 0:349dc9b0984f 154 }else{
narshu 0:349dc9b0984f 155
narshu 0:349dc9b0984f 156
narshu 0:349dc9b0984f 157 Mat._nCols++;
narshu 0:349dc9b0984f 158 for( int i = 0; i < Mat._nRows; i++ )
narshu 0:349dc9b0984f 159 Mat._matrix[i].resize( Mat._nCols );
narshu 0:349dc9b0984f 160
narshu 0:349dc9b0984f 161 for( int i = 0; i < Mat._nRows; i++ )
narshu 0:349dc9b0984f 162 for( int j = Mat._nCols; j > index; j-- )
narshu 0:349dc9b0984f 163 Mat._matrix[i][j] = Mat._matrix[i][j - 1];
narshu 0:349dc9b0984f 164
narshu 0:349dc9b0984f 165 for( int i = 0; i < Mat._nRows; i++ )
narshu 0:349dc9b0984f 166 Mat._matrix[i][index] = 0.0;
narshu 0:349dc9b0984f 167
narshu 0:349dc9b0984f 168 }
narshu 0:349dc9b0984f 169 }
narshu 0:349dc9b0984f 170
narshu 0:349dc9b0984f 171
narshu 0:349dc9b0984f 172 void Matrix::AddCol(Matrix& Receip, const Matrix& Row, int index)
narshu 0:349dc9b0984f 173 {
narshu 0:349dc9b0984f 174 Matrix::AddCol( Receip, index ); // Make Rom
narshu 0:349dc9b0984f 175
narshu 0:349dc9b0984f 176 --index;
narshu 0:349dc9b0984f 177 for( int i = 0; i < Receip._nRows; i++ )
narshu 0:349dc9b0984f 178 Receip._matrix[i][index] = Row._matrix[i][0]; //Copy Data.
narshu 0:349dc9b0984f 179 }
narshu 0:349dc9b0984f 180
narshu 0:349dc9b0984f 181
narshu 0:349dc9b0984f 182 /// Delete a Single Column From Matrix.
narshu 0:349dc9b0984f 183 void Matrix::DeleteCol( Matrix& Mat, int Col)
narshu 0:349dc9b0984f 184 {
narshu 0:349dc9b0984f 185 --Col; // Because of Column zero.
narshu 0:349dc9b0984f 186
narshu 0:349dc9b0984f 187 if( Col > Mat._nCols )
narshu 0:349dc9b0984f 188 {
narshu 0:349dc9b0984f 189 printf("\n\nERROR:\nColumn out of Limits @ DeleteCol()\n");
narshu 0:349dc9b0984f 190
narshu 0:349dc9b0984f 191 }else{
narshu 0:349dc9b0984f 192
narshu 0:349dc9b0984f 193 for( int i = 0; i < Mat._nRows; i++ )
narshu 0:349dc9b0984f 194 for( int j = Col; j < Mat._nCols; j++ )
narshu 0:349dc9b0984f 195 Mat._matrix[i][j] = Mat._matrix[i][j+1];
narshu 0:349dc9b0984f 196
narshu 0:349dc9b0984f 197 // If adressing last element of Column,
narshu 0:349dc9b0984f 198 // wich no longer exists
narshu 0:349dc9b0984f 199 if( Mat._pCol == Mat._nCols )
narshu 0:349dc9b0984f 200 Mat._pCol--;
narshu 0:349dc9b0984f 201
narshu 0:349dc9b0984f 202 // Decrease one column
narshu 0:349dc9b0984f 203 Mat._nCols--;
narshu 0:349dc9b0984f 204
narshu 0:349dc9b0984f 205 //Erase last Column
narshu 0:349dc9b0984f 206 for( int i = 0; i < Mat._nRows; i++ )
narshu 0:349dc9b0984f 207 Mat._matrix[i].reserve(Mat._nCols);
narshu 0:349dc9b0984f 208
narshu 0:349dc9b0984f 209 }
narshu 0:349dc9b0984f 210 }
narshu 0:349dc9b0984f 211
narshu 0:349dc9b0984f 212
narshu 0:349dc9b0984f 213 /// Delete a Single Row form Matrix
narshu 0:349dc9b0984f 214 void Matrix::DeleteRow(Matrix& Mat, int Row)
narshu 0:349dc9b0984f 215 {
narshu 0:349dc9b0984f 216 --Row;
narshu 0:349dc9b0984f 217
narshu 0:349dc9b0984f 218 if( Row > Mat._nRows )
narshu 0:349dc9b0984f 219 {
narshu 0:349dc9b0984f 220 printf("\n\nERROR:\nColumn out of Limits @ DeleteCol()\n");
narshu 0:349dc9b0984f 221
narshu 0:349dc9b0984f 222 }else{
narshu 0:349dc9b0984f 223
narshu 0:349dc9b0984f 224 for( int i = Row; i < Mat._nRows - 1; i++ )
narshu 0:349dc9b0984f 225
narshu 0:349dc9b0984f 226 for( int j = 0; j < Mat._nCols; j++ )
narshu 0:349dc9b0984f 227 Mat._matrix[i][j] = Mat._matrix[i+1][j];
narshu 0:349dc9b0984f 228 Mat._nRows--;
narshu 0:349dc9b0984f 229 Mat._matrix.resize(Mat._nRows);
narshu 0:349dc9b0984f 230 }
narshu 0:349dc9b0984f 231 }
narshu 0:349dc9b0984f 232
narshu 0:349dc9b0984f 233 /*****************************************************************************************/
narshu 0:349dc9b0984f 234
narshu 0:349dc9b0984f 235 /// Extracts a single row form calling matrix and saves it to another matrix.
narshu 0:349dc9b0984f 236 const Matrix Matrix::ExportRow( const Matrix& Mat, int row )
narshu 0:349dc9b0984f 237 {
narshu 0:349dc9b0984f 238 --row;
narshu 0:349dc9b0984f 239
narshu 0:349dc9b0984f 240 if( row > Mat._nRows )
narshu 0:349dc9b0984f 241 {
narshu 0:349dc9b0984f 242 printf( "\n\nERROR:\nRow out of dimmensions @ GetRow\n"
narshu 0:349dc9b0984f 243 "Nothing Done.\n\n" );
narshu 0:349dc9b0984f 244 return Matrix();
narshu 0:349dc9b0984f 245
narshu 0:349dc9b0984f 246 }else{
narshu 0:349dc9b0984f 247
narshu 0:349dc9b0984f 248 Matrix SingleRow( 1 , Mat._nCols );
narshu 0:349dc9b0984f 249 SingleRow.Clear();
narshu 0:349dc9b0984f 250
narshu 0:349dc9b0984f 251 for( int j = 0; j < Mat._nCols; j++ )
narshu 0:349dc9b0984f 252 SingleRow._matrix[0][j] = Mat._matrix[row][j];
narshu 0:349dc9b0984f 253
narshu 0:349dc9b0984f 254 SingleRow._pCol = SingleRow._nCols;
narshu 0:349dc9b0984f 255 SingleRow._pRow = 0;
narshu 0:349dc9b0984f 256
narshu 0:349dc9b0984f 257 return SingleRow;
narshu 0:349dc9b0984f 258 }
narshu 0:349dc9b0984f 259 }
narshu 0:349dc9b0984f 260
narshu 0:349dc9b0984f 261
narshu 0:349dc9b0984f 262 /// Extracts a single column form calling matrix and saves it to another matrix.
narshu 0:349dc9b0984f 263 const Matrix Matrix::ExportCol( const Matrix& Mat, int col )
narshu 0:349dc9b0984f 264 {
narshu 0:349dc9b0984f 265 --col;
narshu 0:349dc9b0984f 266
narshu 0:349dc9b0984f 267 if( col > Mat._nCols )
narshu 0:349dc9b0984f 268 {
narshu 0:349dc9b0984f 269 printf( "\n\nERROR:\nColumn out of dimmensions.\n"
narshu 0:349dc9b0984f 270 "Nothing Done.\n\n" );
narshu 0:349dc9b0984f 271 return Matrix();
narshu 0:349dc9b0984f 272 }else{
narshu 0:349dc9b0984f 273
narshu 0:349dc9b0984f 274 Matrix SingleCol( Mat._nRows, 1 );
narshu 0:349dc9b0984f 275 for(int i = 0; i < Mat._nRows; i++ )
narshu 0:349dc9b0984f 276 SingleCol._matrix[i][0] = Mat._matrix[i][col];
narshu 0:349dc9b0984f 277
narshu 0:349dc9b0984f 278 SingleCol._pCol = 0;
narshu 0:349dc9b0984f 279 SingleCol._pRow = SingleCol._nRows;
narshu 0:349dc9b0984f 280
narshu 0:349dc9b0984f 281 return SingleCol;
narshu 0:349dc9b0984f 282 }
narshu 0:349dc9b0984f 283 }
narshu 0:349dc9b0984f 284
narshu 0:349dc9b0984f 285
narshu 0:349dc9b0984f 286 /// Makes matrix Bigger!
narshu 0:349dc9b0984f 287 void Matrix::Resize( int Rows, int Cols )
narshu 0:349dc9b0984f 288 {
narshu 0:349dc9b0984f 289 _nRows = Rows; //Decreases one because internally
narshu 0:349dc9b0984f 290 _nCols = Cols; // Index starts at zero.
narshu 0:349dc9b0984f 291
narshu 0:349dc9b0984f 292 _matrix.resize( _nRows );
narshu 0:349dc9b0984f 293
narshu 0:349dc9b0984f 294 for( int i = 0; i< _nRows ; i++ )
narshu 0:349dc9b0984f 295 _matrix[i].resize(_nCols);
narshu 0:349dc9b0984f 296
narshu 0:349dc9b0984f 297 _pRow = 0; // If matrix is resized the <<
narshu 0:349dc9b0984f 298 _pCol = 0; // operator overwrites everything!
narshu 0:349dc9b0984f 299 }
narshu 0:349dc9b0984f 300
narshu 0:349dc9b0984f 301
narshu 0:349dc9b0984f 302 /// Ask user for elemnts in Matrix
narshu 0:349dc9b0984f 303 void Matrix::FillMatrix()
narshu 0:349dc9b0984f 304 {
narshu 0:349dc9b0984f 305 for(int i = 0; i < _nRows; i++)
narshu 0:349dc9b0984f 306 {
narshu 0:349dc9b0984f 307 for(int j = 0; j < _nCols; j++)
narshu 0:349dc9b0984f 308 {
narshu 0:349dc9b0984f 309 printf( "Position [%u][%u]: ", i, j );
narshu 0:349dc9b0984f 310 float numero;
narshu 0:349dc9b0984f 311 scanf( "%f", &numero );
narshu 0:349dc9b0984f 312 printf("%.3f ", numero);
narshu 0:349dc9b0984f 313 this->_matrix[i][j] = numero;
narshu 0:349dc9b0984f 314 }
narshu 0:349dc9b0984f 315 printf("\n");
narshu 0:349dc9b0984f 316 }
narshu 0:349dc9b0984f 317 printf("\n");
narshu 0:349dc9b0984f 318
narshu 0:349dc9b0984f 319 _pRow = _nRows;
narshu 0:349dc9b0984f 320 _pCol = _nCols;
narshu 0:349dc9b0984f 321 }
narshu 0:349dc9b0984f 322
narshu 0:349dc9b0984f 323
narshu 0:349dc9b0984f 324 /// Prints out Matrix.
narshu 0:349dc9b0984f 325 void Matrix::print() const
narshu 0:349dc9b0984f 326 {
narshu 0:349dc9b0984f 327 for( int i = 0; i < _nRows; i++ )
narshu 0:349dc9b0984f 328 {
narshu 0:349dc9b0984f 329 for( int j = 0; j < _nCols; j++ )
narshu 0:349dc9b0984f 330 {
narshu 0:349dc9b0984f 331 printf( "%.3f, ",_matrix[i][j] );
narshu 0:349dc9b0984f 332
narshu 0:349dc9b0984f 333 }
narshu 0:349dc9b0984f 334 printf( "\n" );
narshu 0:349dc9b0984f 335 }
narshu 0:349dc9b0984f 336 }
narshu 0:349dc9b0984f 337
narshu 0:349dc9b0984f 338
narshu 0:349dc9b0984f 339 /// Fills matrix with zeros.
narshu 0:349dc9b0984f 340 void Matrix::Clear()
narshu 0:349dc9b0984f 341 {
narshu 0:349dc9b0984f 342 for( int i = 0; i < _nRows; i++ )
narshu 0:349dc9b0984f 343 for( int j = 0; j < _nCols; j++ )
narshu 0:349dc9b0984f 344 _matrix[i][j] = 0;
narshu 0:349dc9b0984f 345
narshu 0:349dc9b0984f 346 _pCol = 0; // New data can be added
narshu 0:349dc9b0984f 347 _pRow = 0;
narshu 0:349dc9b0984f 348 }
narshu 0:349dc9b0984f 349
narshu 0:349dc9b0984f 350 /********************************************************************************/
narshu 0:349dc9b0984f 351
narshu 0:349dc9b0984f 352
narshu 0:349dc9b0984f 353 /// Inserts a Single element in a desired Position( Index starts at [1][1] );
narshu 0:349dc9b0984f 354 void Matrix::add(int Row, int Col, float number)
narshu 0:349dc9b0984f 355 {
narshu 0:349dc9b0984f 356 --Col; --Row;
narshu 0:349dc9b0984f 357
narshu 0:349dc9b0984f 358 if( Row > _nRows || Col > _nCols )
narshu 0:349dc9b0984f 359 {
narshu 0:349dc9b0984f 360 printf("\n\nERROR:\nOut of limits of Matrix @ mat.Add()");
narshu 0:349dc9b0984f 361
narshu 0:349dc9b0984f 362 }else{
narshu 0:349dc9b0984f 363 _matrix[Row][Col] = number;
narshu 0:349dc9b0984f 364 }
narshu 0:349dc9b0984f 365 }
narshu 0:349dc9b0984f 366
narshu 0:349dc9b0984f 367
narshu 0:349dc9b0984f 368 /// Adds all elements in matrix and returns the answer.
narshu 0:349dc9b0984f 369 float Matrix::sum() const
narshu 0:349dc9b0984f 370 {
narshu 0:349dc9b0984f 371 float total = 0;
narshu 0:349dc9b0984f 372
narshu 0:349dc9b0984f 373 for( int i = 0; i < _nRows; i++ )
narshu 0:349dc9b0984f 374 for( int j = 0; j < _nCols; j++ )
narshu 0:349dc9b0984f 375 total += _matrix[i][j];
narshu 0:349dc9b0984f 376 return total;
narshu 0:349dc9b0984f 377 }
narshu 0:349dc9b0984f 378
narshu 0:349dc9b0984f 379
narshu 0:349dc9b0984f 380 /// Returns the specified element. Index Starts at [1][1].
narshu 0:349dc9b0984f 381 float Matrix::getNumber( int Row, int Col ) const
narshu 0:349dc9b0984f 382 { return this->_matrix[Row -1][Col - 1]; }
narshu 0:349dc9b0984f 383
narshu 0:349dc9b0984f 384 /// Returns the number of Rows in Matrix.
narshu 0:349dc9b0984f 385 int Matrix::getRows() const{ return this->_nRows; }
narshu 0:349dc9b0984f 386
narshu 0:349dc9b0984f 387
narshu 0:349dc9b0984f 388 /// Returns the number of Columns in Matrix.
narshu 0:349dc9b0984f 389 int Matrix::getCols() const{ return this->_nCols; }