можно ли сохранить gsl_matrix в векторе C++? Или есть несколько способов сохранить gsl_matrix 5 * 5 как элемент определенного пользователем struct? Правильно ли vector<gsl_matrix>syntex
Есть несколько старых привязок (gslwrap.sourceforge.net), но я бы переключился на Eigen как на более современный.
@DeiDei Я не пробовал, потому что не знаю, как это написать.





Основываясь на комментарии 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;
}
Привет, это означает, что vector_matrix [0] и vector_matrix [1] имеют один и тот же указатель и всегда будут иметь одно и то же значение? Мне интересно, если я хочу сохранить вектор из 10 gsl_matrix, означает ли это, что мне нужно 10 переменных-указателей, чтобы он работал?
Вы пробовали? C++ очень хорошо специализируется на таких вещах.