2010-01-28 380 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; 
}