我是VS C ++ 2010中实现Eigen Library的新手。 我的问题是我找不到运算符XOR来在我的矩阵中进行。我使用^来使我的XOR操作C ++并且它确实有效,但在Eigen它不起作用。任何人都可以告诉我是否有特征的XOR运算符?我已经准备好阅读文档,但我找不到它。下面是我正在处理的代码:
m(0,1) = 1;
for (i = 0; i < 7; i++) {
for (j = 0; j < 7; j++) {
m(i + 1,j + 1) = m(i,j) ^ m(i, j + 2);
cout << m(i,j) << " ";
}
cout << endl;
}
感谢您的帮助。
答案 0 :(得分:0)
不确定您的问题,因为您的代码的重要部分缺失(m的声明)。让我们尝试在不同的假设下给出答案:
1)您提供的剪辑是您想要的代码,但它没有按预期工作:
如果您已将m
声明为
Eigen::Matrix<int,9,9> m;
代码应该有效。像Eigen::Matrix<float,9,9>
这样的东西不起作用,因为{+ 1}}运算符没有在c ++中的float类型上定义。 ^
将是矩阵的动态版本,并导致相同的错误。你没有提供错误,所以它也可能是完全不同的东西,例如错误标注Eigen::MatrixXf
2)您提供的代码段正在为您工作,您试图使用内置的特征运算符复制相同的功能:
reference中的特征类型没有定义m
运算符。但同样,你的snipped中的运算符不在Eigen类型上,因为访问操作^
的返回值是对用于声明m(i,j)
的任何类型的ValueType引用。