just wanted to update here for people having similar problems.. I fixed it with the following code:

Code:
CvMat *M1;
	//cv::Mat M1(2,row->width,CV_32FC1);
	M1 = cvCreateMat(5,row->width,CV_32FC1 );
	//row.copyTo(M1.row(0));
	//row2.copyTo(M1.row(2));
	//M1.row(0) = 0;
	//M1.row(0) = row + 0;
	//M1.row(1) = 0;
	//M1.row(1) = row2 + 0;
	cvSetZero(M1);

	/*for(int i=0;i<5;i++)
	{
		for(int j=0;j<row->width;j++)
		{
			CV_MAT_ELEM( *M1, float, i, j ) = CV_MAT_ELEM( *rowi, float, 0, i );*/

	for(int i=0;i<row->width;i++)
	{
		CV_MAT_ELEM( *M1, float, 0, i ) = CV_MAT_ELEM( *row, float, 0, i );
	}
	
	for(int j=0;j<row2->width;j++)
	{
		CV_MAT_ELEM( *M1, float, 1, j ) = CV_MAT_ELEM( *row2, float, 0, j );
	}
	for(int k=0;k<row2->width;k++)
	{
		CV_MAT_ELEM( *M1, float, 2, k ) = CV_MAT_ELEM( *row3, float, 0, k );
	}
	for(int l=0;l<row2->width;l++)
	{
		CV_MAT_ELEM( *M1, float, 3, l ) = CV_MAT_ELEM( *row3, float, 0, l );
	}
	for(int m=0;m<row2->width;m++)
	{
		CV_MAT_ELEM( *M1, float, 4, m ) = CV_MAT_ELEM( *row4, float, 0, m );
	}
the matrix M1 is a 5 row matrix having 50 columns.. each row represents a seperate matrix.. row, row2, row3, row4 and row5