Как обрабатывать пустые возвраты & quot; найти & quot; в броненосце?

у меня есть ivec C1 и, скажем, sum( C1.elem(find( C1==1 )) ),

Я надеялся получить нулевой возврат, если нет элемента в C1 это 1, но вместо этого он дал мне ошибку, говоря, что Mat :: elem (): данный объект не является вектором.

Я пытался использовать (find(C1==1)).is_empty() но это не было принято, так как он сказал мне, что это не обеспечивает is_empty метод возврата find, Тогда я попытался conv_to<uvec>::from(find(C1==1)) но когда C1 действительно пусто, это не позволяет такое преобразование.

Кто-нибудь может мне помочь из этого? Спасибо!!

0

Решение

Следующий код должен обойти эту проблему.
Изменить:

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

чтобы:

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

Вывод sum () для пустых векторов должен быть равен нулю.

0

Другие решения

Других решений пока нет …