查找GSL矩阵中的行数/列数?

时间:2015-06-02 16:44:20

标签: c++ matrix linear-algebra gsl

说我有一些gsl_matrix * A。我想编写一个检索例如此矩阵中的行数,除了对象A本身之外无法访问任何其他内容。

示例:

int num_rows(gsl_matrix * A){
    //some operation(s) on A that find the number of rows in the matrix
    //store that number in an int r
    return r;
}

我可以写些什么来为我做这件事?

1 个答案:

答案 0 :(得分:3)

来自https://www.gnu.org/software/gsl/manual/html_node/Matrices.html

gsl_matrix定义为:

typedef struct
{
  size_t size1;
  size_t size2;
  size_t tda;
  double * data;
  gsl_block * block;
  int owner;
} gsl_matrix;

  

行数为size1。有效行索引的范围从0到size1-1。类似地,size2是列数。有效列索引的范围从0到size2-1。物理行维度tda或尾随维度指定内存中布局的矩阵行的大小。

因此,如果您想要A中的行数,那么您可以使用:

int num_rows(gsl_matrix * A){
    int r = A->size1;
    return r;
}