This is a test Program for the Class Matrix version 1.6.4

Dependencies:   Matrix Kinematics mbed TrackVector2D MatrixMath

main.cpp

Committer:
Yo_Robot
Date:
2011-10-21
Revision:
0:63af78c5943c
Child:
1:9e4cb305fb24

File content as of revision 0:63af78c5943c:

#include "mbed.h"
#include "Matrix.h"
#include "MatrixMath.h"

int main() {

    DigitalOut myled(LED1);
    
    Matrix myMatrix(3,3);
    Matrix anotherMatrix;

    // Fill Matrix with data.
    myMatrix << 1  << 2  << 3
             << 4  << 5  << 6
             << 7  << 8  << 9;

    printf( "\myMatrix \n");
    myMatrix.print();
    printf( "\n" );

    
    /** Matrix operations **/

    // Add 5 to negative Matrix 
    anotherMatrix = - myMatrix + 5;

    printf( "Result Matrix: anotherMatrix = - myMatrix + 5\n" );
    anotherMatrix.print();
    printf( "\n" );
    
    // Matrix Multiplication *
    anotherMatrix *=  myMatrix;

    printf( "anotherMatrix = anotherMatrix * myMatrix\n" );
    anotherMatrix.print();
    printf( "\n" );
    
    // Scalar Matrix Multiplication anotherMatrix *= 0.5
    anotherMatrix *= 0.5;

    printf( "Result Matrix *= 0.5:\n" );
    anotherMatrix.print();
    printf( "    _______________________________ \n" );


    printf("** MEMBER OPERATIONS ** \n\n");

    //Copy myMatrix
    Matrix temp( myMatrix );

    // Resize Matrix
    temp.Resize(4,4);
    printf("\nAdded one Column, one Row to the limitsof myMatrix saved in temp Matrix");
    temp.print();

    //Delete those new elements, we don't need them anyway.
    Matrix::DeleteRow( temp, 4 );
    Matrix::DeleteCol( temp, 4 );

    printf("\nBack to normal\n");
    temp.print();

    
    // Make room at the begining of Matrix
    Matrix::AddRow( temp, 1 );
    Matrix::AddColumn( temp, 1 );
    printf("\nAdded Just one Row and column to the beginning\n");
    temp.print();

    // Take the second Row as a New Matrix
    anotherMatrix = Matrix::ExportRow( temp, 2 );
    printf("\nExport Second Row \n");
    anotherMatrix.print();

    // The second Column as a ner Matrix, then transpose it to make it a Row
    anotherMatrix = Matrix::ExportCol( temp, 2 );
    anotherMatrix = MatrixMath::Transpose( anotherMatrix );
    printf("\nAnd Export Second Column and Transpose it \n");
    anotherMatrix.print();

    // This will Check to see if your are reduce to a single Row or Column
    temp = Matrix::ToPackedVector( myMatrix );
    printf("\nInitial Matrix turned into a single Row\n");
    temp.print();
           
    // That's all for now!!!
           
    while(1) {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}