[英]How to count the number of nonzero in the eigen::Tensor<T,2>
如果我使用布爾張量的總和,則重用永遠是1
Eigen::Tensor<int,2> my_rankx (3,3);
my_rankx.setValues(
{
{1, 2, 3},
{0, 0, 0},
{11, 12, 0}
});
auto number_matrix = (my_rankx.constant(static_cast<int>(0))==my_rankx);
cout<<number_matrix.sum()<<endl; // result of cout is 1
(my_rankx.constant(0) == my_rankx)
是bool
的張量,將bool
加在一起會導致false
或true
分別被轉換為0
和1
。 (順便說一句,問題中的static_cast<int>(0)
是多余的,因為0
的類型為int
。)
您可以將std::count
與data()
使用:
std::cout << std::count(my_rankx.data(), my_rankx.data() + my_rankx.size(), 0)
<< "\n";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.