如何处理犰狳"find"的空退货?

How to handle empty returns of "find" in Armadillo?

本文关键字:find 何处理 处理      更新时间:2023-10-16

我有一个ivec C1,说,sum( C1.elem(find( C1==1 )) )

如果C1中没有元素是 1,我希望得到零回报,但它给了我一个错误,说 Mat::elem():给定的对象不是向量

我尝试使用(find(C1==1)).is_empty()但这没有被接受,因为它告诉我它没有提供返回findis_empty方法。然后我试图conv_to<uvec>::from(find(C1==1))但是当C1确实为空时,它不允许这种转换。

有人可以帮助我摆脱困境吗?谢谢!!

以下代码应该可以解决此问题。改变:

sum( C1.elem( find(C1==1) ) )

自:

sum( C1.elem( uvec(find(C1==1)) ) )

空向量的 sum() 输出应为零。