我正在移植一些MATLAB代码到C++使用Eigen 3模板库,我正在寻找这个常见的良好映射MATLAB idiom:
K>> [1 2 3 4 5] <= 3
ans =
1 1 1 0 0
因此,比较数组和标量,返回具有相同形状的布尔值数组。
我明白艾根的Array类具有系数比较运算符,但如果我正确解释文档,它们只能与另一个数组一起使用;不是标量值。
我是否错过了一些可以与标量进行比较的选项?或者如果失败了,可以用一种很好的惯用方式来创建适当形状的Array用表达式右侧的标量值填充?
感谢克里斯索夫特_来自#eigen
IRC 频道:
VectorXd compareMat = ...;
double cutoff = 3;
Matrix<bool, Dynamic, 1> result = compareMat.array() <= cutoff;
所以,诀窍是使用.array()
获得系数运算符,当然还有正确的返回类型......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)