2010-01-28 3 views

Répondre

4

Non car il n'existe pas de classe de matrice C++ standard à répliquer. Si vous utilisez une bibliothèque matricielle tierce (il en existe plusieurs), vous pouvez trouver cette fonction disponible, mais si vous lancez votre propre classe matricielle, vous devrez également fournir cette fonction.

+0

toutes les bibliothèques de la matrice de tiers disponibles gratuitement, vous pouvez suggérer? – iceman

+0

@iceman Oui, selon ma réponse ci-dessous, j'ai utilisé GSL. C'est une bibliothèque C, mais vous pouvez juste l'envelopper (il y a même GSLWrap, si vous voulez l'utiliser). C'est assez riche. Ensuite, il y a LAPACK et BLAS, mais si je comprends bien, GSL les utilise? –

4

J'utilise GSL et j'ai quelque chose comme ceci:

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; 
} 
Questions connexes