初始化GSL矩阵的元素

时间:2016-09-13 22:57:17

标签: c gsl

我已经分配了一个大的gsl_matrix,并希望用已知的浮点值分配它的所有元素。有没有办法在不为每个元素使用gsl_matrix_set的情况下执行此操作?我正在寻找相当于fortran的重塑函数来初始化矩阵。

A = reshape( (/0, 1, 2, 3, 4, 5, 6, 7,
0, 1, 2, 3, 4, 5, 6, 7,
0, 1, 2, 3, 4, 5, 6, 7,
0, 1, 2, 3, 4, 5, 6, 7,
0, 1, 2, 3, 4, 5, 6, 7,
0, 1, 2, 3, 4, 5, 6, 7,
0, 1, 2, 3, 4, 5, 6, 7,
0, 1, 2, 3, 4, 5, 6, 7/), (/ 8, 8/) )

1 个答案:

答案 0 :(得分:2)

矩阵仅支持所有值的有限设置,即gsl_matrix_set_allgsl_matrix_set_zerogsl_matrix_set_identity

但是,您可以创建并初始化数组,然后使用gsl_matrix_view_arraygsl_matrix_const_view_arraygsl_matrix_view_array_with_tda或{{1}创建矩阵视图 }。 (矩阵视图在GSL中很常见。例如,它们用于表示由gsl_matrix_const_view_array_with_tda返回的子矩阵。)矩阵视图是一个结构,其中包含一个字段gsl_matrix_submatrix,您可以在该字段上执行gsl_matrix方法你想申请。

例如,使用matrix编译以下文件gcc matrixview.c -lgsl -lgslcblas

matrixview.c