是否可以将gsl_matrix存储在c ++向量中?

时间:2018-04-22 07:18:20

标签: c++ gsl

是否可以将gsl_matrix存储在c ++向量中?或者是否有一些方法可以存储5 * 5 gsl_matrix作为用户定义struct的元素? vector<gsl_matrix> syntex是否正确

1 个答案:

答案 0 :(得分:1)

根据DeiDei的评论,我试过了,这是一个例子。

#include <gsl/gsl_matrix.h>
#include <gsl/gsl_blas.h>
#include <vector>
#include <iostream>

using namespace std;

int main(){
    vector<gsl_matrix> vector_matrix;
    gsl_matrix *a, *c;
    a = gsl_matrix_alloc(2,2);
    c = gsl_matrix_alloc(2,2);
    for(size_t i=0;i<2;i++){
        for(size_t j=0; j<2;j++)
            gsl_matrix_set(a, i, j, i+j);
            gsl_matrix_set(c, i, j, i+j);
    }
    vector_matrix.push_back(*a);
    vector_matrix.push_back(*c);
    vector_matrix.push_back(*a);
    gsl_blas_dgemm(CblasNoTrans,CblasNoTrans,
                   1.0,&vector_matrix[0],&vector_matrix[1],
                   1.0,&vector_matrix[2]);
    for(size_t i=0;i<2;i++){
        for(size_t j=0; j<2;j++)
            cout<<gsl_matrix_get(&vector_matrix[2],i,j)<<endl;
    }
    return 0;
}