如果在程序中需要调用gsl中的矩阵类型,首先需要声明#include<gsl/gsl_matrix.h>
与向量一样,gsl中的矩阵同样也构建在数据块之上。其声明如下:
需要仔细说明的是矩阵中tda的意义。举一个矩阵的例子:
1 2 3 X X X
4 5 6 X X X
这个矩阵中"X"表示未使用的内存单元。则在这个矩阵中,size1=2,size2=3,而实际列数tda=6。这样的规定与c语言中二维数组的存储格式为行优先有关。因此gsl_matrix中block->data内存块的实际大小为size1*tda*sizeof(double)。 gsl在矩阵中还设置了一个size2参数正是体现了内容与描述分离的思想。
类似于向量,gsl也提供了各种关于矩阵内存分配的函数: