두 개의 행렬을 요소별로 비교하고 해당 위치의 요소가 일치하는 경우 1
을 포함하는 행렬을 반환하거나 그렇지 않으면 0
을 반환합니다. 두 개의 동적 배열을 비교하고 어떤 요소가 일치하는지 어떻게 확인합니까?
template <class A, class B>
void func(const A& a, const B& b)
{
auto c = (b.array() == a.array()).cast<int>();
std::cout << c;
}
그래서 나는 그것을 테스트하기 위해이 같은
main
기능을 썼다 :이 수행하는 간단한 테스트 기능을 만들어
int main()
{
Eigen::Array<int,Eigen::Dynamic,Eigen::Dynamic> b;
b.resize(2,2);
b.fill(2);
auto a = b;
a(0,0) = 1;
a(0,1) = 2;
a(1,0) = 3;
a(1,1) = 4;
func(a,b);
return 0;
}
을하지만이 오류가 점점 계속 :
eigenOperations.cpp: In function ‘void func(const A&, const B&)’: eigenOperations.cpp:8:24: error: expected primary-expression before ‘int’ auto c = temp.cast<int>(); eigenOperations.cpp:8:24: error: expected ‘,’ or ‘;’ before ‘int’ make: *** [eigenOperations] Error 1
을 여기서 내가 뭘 잘못하고 있니?