GSL中是否存在`numpy.minimum`等价物?

时间:2013-10-03 13:32:08

标签: c++ numpy gsl

我正在努力将一个复杂的数据分析例程移植到Python“C ++”中。我在整个Python代码中广泛使用了Numpy。我正在考虑在C ++端口使用GSL,因为它实现了我需要的所有各种数值例程(而Armadillo,Eigen等只有我需要的一部分,尽管他们的API更接近我正在寻找的对于)。

GSL中是否有numpy.minimum的等价物(即两个矩阵的元素最小值)?这只是我正在寻找的Numpy抽象的一个例子。这样的事情只需要在使用GSL时手动重新实现吗?我注意到GSL提供了类似的东西:

double gsl_matrix_min (const gsl_matrix * m)

但这只是提供整个矩阵的最小值。无论元素比较如何,使用GSL甚至不可能沿单个矩阵的特定轴报告最小值。这让我感到惊讶。

我的期望是否错位?

1 个答案:

答案 0 :(得分:0)

您可以通过find().elem()函数在Armadillo中轻松实现元素最小值:

mat A; A.randu(5,5);
mat B; B.randu(5,5);

umat indices = find(B < A);

mat C = A;
C.elem(indices) = B.elem(indices);

对于Armadillo中不存在的其他函数,可以通过.memptr()函数将Armadillo矩阵与GSL函数接口。