You probably didn't want a 2 channel matrix, but a simple 2 dimensional matrix:
This following code will produce the desired output:
A:
[1, 2, 3]
B:
[4, 5, 6]
C:
[7, 8, 9]
M:
[1, 2, 3;
4, 5, 6;
7, 8, 9]
Code:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat1f A = (Mat1f(1, 3) << 1, 2, 3);
Mat1f B = (Mat1f(1, 3) << 4, 5, 6);
Mat1f C = (Mat1f(1, 3) << 7, 8, 9);
Mat1f M(3,3);
A.copyTo(M.rowRange(0, 1));
B.copyTo(M.rowRange(1, 2));
C.copyTo(M.rowRange(2, 3));
cout << "A: " << endl << A << endl << endl;
cout << "B: " << endl << B << endl << endl;
cout << "C: " << endl << C << endl << endl;
cout << "M: " << endl << M << endl << endl;
return 0;
}