gsl_matrix的初始化
initialization of a gsl_matrix
>我正在使用GNU科学库,我想用值初始化一个矩阵,但我不明白没有循环怎么做:
这有效:
gsl_matrix * m = gsl_matrix_alloc (3, 3);
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
gsl_matrix_set (m, i, j, 100*i + j);
但我想做这样的事情:
double data[] = { i , 1/2.0, 1/3.0,
1/2.0, 1/3.0, 1/4.0,
1/3.0, 1/4.0, 1/5.0};
gsl_matrix mat = gsl_matrix_from_array(data); // does not exists
有没有办法做到这一点?
您可以使用
std::copy()
来执行此操作。
#include <iostream>
#include <gsl/gsl_matrix.h>
using namespace std;
int main(void){
double data[] = {1,2,3,4};
gsl_matrix *m = gsl_matrix_alloc(2,2);
copy(data, data+4, m->data);
printf("Matrix:n%f %fn%f %fn", gsl_matrix_get(m, 0, 0), gsl_matrix_get(m, 0, 1),
gsl_matrix_get(m, 1, 0), gsl_matrix_get(m, 1, 1));
return 0;
}
相关文章:
- 是否可以初始化不可复制类型的成员变量(或基类)
- C++使用整数的压缩数组初始化对象
- C++初始化基类
- 多成员Constexpr结构初始化
- 复制列表初始化的隐式转换的等级是多少
- 内联映射初始化的动态atexit析构函数崩溃
- 如何在C++中初始化嵌套类中的2个memeber
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 没有用于初始化C++中的变量模板的匹配构造函数
- 在未初始化映射的情况下,将值插入到映射的映射中
- C++成员初始化
- 为什么在C++中首先初始化成员类
- 同时具有"聚合初始化"和"模板推导"
- 初始化具有非默认构造函数的std::数组项的更好方法
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 在C和C++中初始化结构中的数组
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 在函数内部的声明中初始化数组,并在外部使用它
- 从类型 'Matrix&' 的右值初始化 类型的非 const 引用无效 'Matrix'