前一篇介绍了查找某元素是否在vector,matrix中https://blog.csdn.net/zaza0_0/article/details/104581400
这一篇写逐元素比较。
//[[Rcpp::depends(RcppEigen)]]
#include<RcppEigen.h>
#include<Rcpp.h>
using namespace std;
using namespace Eigen;
// [[Rcpp::export]]
VectorXd testequal(VectorXd v2){
VectorXd v1=v2
Vector3d v3;
v3<<1,2,3;//注意使用<<赋值只能对固定大小的向量或矩阵
//向量和矩阵的不等比较,需要使用array(),使用< > <= >= any() all(),返回0/1
cout<<"is any element in v3<v2?"<<((v1.array()<v2.array()).any())<<endl;
//向量与向量,矩阵与矩阵的相等比较,向量/矩阵与常数相等比较,使用cwiseEqual(),返回布尔值向量或矩阵
if(v1==v2) cout<<v1.cwiseEqual(v2)<<endl;
return v1;
}
1、向量和矩阵的不等比较,需要使用array(),使用< > <= >= any() all(),返回0/1。
2、向量与向量,矩阵与矩阵的相等比较,向量/矩阵与常数相等比较,使用cwiseEqual(),返回布尔值向量或矩阵