2010-01-28 374 views

回答

4

不,因为没有标准的C++矩阵类来复制。如果您使用第三方矩阵库(存在多个),您可能会发现它具有该功能,但如果您推出自己的矩阵类,则还需要提供此功能。

+0

任何免费提供的第三方矩阵库,你可以建议? – iceman 2010-01-28 22:12:00

+0

@iceman是的,根据我的回答,我一直在使用GSL。这是一个C库,但你可以把它包装起来(如果你想使用的话,甚至还有GSLWrap)。它非常有特色。然后是LAPACK和BLAS,但如果我理解正确,GSL会使用这些? – 2011-02-15 02:16:46

4

我使用GSL,我有这样的事情:

gsl_matrix * RepMatHorizAlloc(gsl_vector * v, size_t k) { 
    gsl_matrix *mat = gsl_matrix_alloc(k, v->size); 
    for (size_t i = 0; i < k; ++i) { 
    gsl_matrix_set_row(mat, i, v); 
    } 
    return mat; 
} 

gsl_matrix * RepMatVertAlloc(gsl_vector * v, size_t k) { 
    gsl_matrix *mat = gsl_matrix_alloc(v->size, k); 
    for (size_t i = 0; i < k; ++i) { 
    gsl_matrix_set_col(mat, i, v); 
    } 
    return mat; 
}