C++ 犰狳库中的sort_index()函数给出了错误的结果
sort_index() function in c++ armadillo library gives wrong result
我在 c++ 犰狳中使用 sort_index(( 函数,它似乎没有给出正确的结果:
输入向量为 [3,4,2,1,5] 双向排序
arma::sort_index(input, "ascend").print();
arma::sort_index(input, "descend").print();
并获得以下结果: [3,2,0,1,4] 和 [4,1,0,2,3]
这两者都不正确。按照升序排序应给出 [2,3,1,0,4](用numpy.searchsorted
加倍检查,它给出了上述结果(。
---编辑---
感谢您的回复!我现在意识到我误解了sort_index
索引的方式。我仍在尝试找到一个高效的、等效的函数,可以在 c++ 中实现np.searchsorted
......
犰狳的文档指出
sort_index( X )
sort_index( X, sort_direction )
返回一个向量,它描述了 X 元素的排序顺序(即它包含 X 元素的索引(
返回的向量对应于原始向量X
中元素的索引,这将导致排序向量。
numpy 中的相应函数是argsort
而不是searchsorted
。事实上,来自numpy的argsort
将给出与犰狳sort_index
相同的解决方案。
在您的示例中[3,4,2,1,5]
最小的元素位于索引 3 中,由索引 2 中的元素组成,然后是 0,依此类推。换句话说,如果你也使用索引X
中的元素[3,2,0,1,4]
你会得到向量[1, 2, 3, 4, 5]
,这是X
排序的。
相关文章:
- 如何从递归函数中完全返回,该函数给出了每个函数结果的累积相加?
- 分段错误分配函数结果
- 使用函数结果作为参数的 C++
- 从可调用可变参数元组中的函数结果创建元组
- 将多个向量(函数结果)组合到一个使用模板中
- 是否可以使用自动占位符来推断非类型模板参数中的函数结果
- 大小由虚函数结果决定的数组
- C/C++编译器是否会通过重用最近计算的函数结果来优化代码?
- 从函数结果中分配 std::shared_ptr 的一行是什么?
- 将函数结果分配给变量的问题
- std::具有自定义比较函数结果的排序函数错误:必须调用对非静态成员函数的引用
- C++SFINAE运算符/函数结果类型检查
- 将函数结果作为"output parameter"返回是什么意思?
- 这将是在将函数分配给变量或一次又一次地调用函数之间使用函数结果的最佳方式
- C++中的绑定函数结果
- 有没有比生成/累积更快的方法来计算函数结果的平均值
- 为什么当递归函数结果相乘时,g++ 仍然优化尾递归
- C++成员函数结果缓存实现
- 用于输出列中对数函数结果的合适循环(c++)
- 将记录作为函数结果从Delphi DLL传递到c++