Si se devo esser sincero le dimensioni interne sono "solo per cambiar qualcosa" pero` nascon fuori questi errori che evidenziando una mala comprensione e chiarirli non fa` mai male il main e` semplicissimo eccolo :

codice:
# include <iostream>

# include "matrix.H" 

using namespace std;


int main()
{
    Matrix<double , 30 , 50 >  A ; 
    Matrix<double, 3 , 5> B ; 

//  B.print();
    //cout << B.empty ;
//  B.resize(30,50);
//  B.initialize( 3.12 );
    
//  B(1,2) = 3.2 ;

//  cout << B(1,2) << endl ; 

    A = B ; 

    return 0;
}
Nota che i commenti erano delle prove per gli altri metodi