代码写错了。修改的办法:Mat transpose( const Mat & a ){ Mat b( a[0].size() , vector( a.size() ) ); int i = 0, j = 0; for( i = 0 ; i < a.size() ; ++i ){ for( j = 0 ; j < a[0].size() ; ++j ){ b[j][i] = a[i][j]; } } return b;}