Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C GSL向量的k个最大元素_C_Sorting_Gsl - Fatal编程技术网

C GSL向量的k个最大元素

C GSL向量的k个最大元素,c,sorting,gsl,C,Sorting,Gsl,我试图得到长度大于k的GSL向量v中k个最大元素的指数 守则如下: uint8_t Indices[k]; gsl_sort_vector_largest_index(Indices, k, v); 但是,由于某些原因,只有第一个索引条目被填充 知道我做错了什么吗 编辑:根据要求,这是一个自包含的示例: #include <gsl/gsl_matrix.h> #include <gsl/gsl_sort_vector.h> #include <stdio.h>

我试图得到长度大于k的GSL向量v中k个最大元素的指数

守则如下:

uint8_t Indices[k];
gsl_sort_vector_largest_index(Indices, k, v);
但是,由于某些原因,只有第一个索引条目被填充

知道我做错了什么吗

编辑:根据要求,这是一个自包含的示例:

#include <gsl/gsl_matrix.h>
#include <gsl/gsl_sort_vector.h>
#include <stdio.h>

void main() {

uint8_t k = 3;
gsl_vector * v;
v = gsl_vector_alloc(10);
gsl_vector_set_all(v,.1);
gsl_vector_set(v, 7, .5); gsl_vector_set(v, 2, .3); gsl_vector_set(v, 4, .2);

uint8_t Indices[k];
gsl_sort_vector_largest_index(Indices, k, v);
for(uint8_t i=0;i<k;i++)
    printf("%u\n",Indices[i]);

gsl_vector_free(v);
}
这给出了700作为输出,而我预期的是724,根据,gsl_sort_vector_maximum_index以size_t*作为其第一个参数,而不是uint_8*


将您的代码更改为使用size\u t而不是uint\u 8,您就可以开始了。

您能创建一个自包含的示例吗?也就是说,将其包装在一个主函数中,并用一组值初始化v。对不起,我无法重现您的问题。检查您收到的任何警告。例如,uint_8可以工作,但根据文档,gsl_sort_vector_maximum_index需要一个大小。事实上,如果我用它来代替,我会得到你的输出。工作得很好!!: