c – 特征中的元素最大和正部分
发布时间:2020-12-16 10:13:13 所属栏目:百科 来源:网络整理
导读:我想在Eigen中采用两个向量/矩阵的元素最大值.到目前为止,我已经编写了这段代码: template typename S,typename Tauto elemwise_max(const S A,const T B) { return (A.array() B.array()).select(A,B); } 这是正确的,还是有更好的方法呢? 对于正面部分(即
我想在Eigen中采用两个向量/矩阵的元素最大值.到目前为止,我已经编写了这段代码:
template <typename S,typename T> auto elemwise_max(const S & A,const T & B) { return (A.array() > B.array()).select(A,B); } 这是正确的,还是有更好的方法呢? 对于正面部分(即max(A,0)),我不知道如何继续.我需要创建两种方法吗? template <typename S> auto positive_part_matrix(const S & A) { auto zeros = S::Zero(A.rows(),A.cols()); return elemwise_max(A,zeros); } template <typename S> auto positive_part_vec(const S & A) { auto zeros = S::Zero(A.size()); return elemwise_max(A,zeros); } 理想情况下,以上两者都称为positive_part. 解决方法
答案是
there.
您可以移至“array” world并使用max: A.array().max(B.array()) 或使用cwiseMax: A.cwiseMax(B) 在这两种情况下,B可以是矩阵或标量: A = A.cwiseMax(0); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |