0

我是在 VS C++ 2010 中实现 Eigen 库的新手。我的问题是我找不到运算符 XOR 来在我的矩阵中生成它。我使用 ^ 使我的 XOR 操作 C++ 并且它确实有效,但在 Eigen 中它不起作用。谁能告诉我 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;
}

谢谢你的帮助。

4

1 回答 1

0

不确定您的问题,因为缺少非常重要的代码部分(m 的声明)。让我们尝试在不同的假设下给出答案:

1)您提供的剪辑是您想要的代码,但它没有按预期工作:

如果您已声明m

Eigen::Matrix<int,9,9> m;

代码应该可以工作。类似的东西Eigen::Matrix<float,9,9>不起作用,因为^在 c++ 中的浮点类型上没有定义运算符。Eigen::MatrixXf将是您的矩阵的动态版本,并导致相同的错误。你没有提供错误是什么,所以它也可能是完全不同的东西,例如错误的尺寸m

2)您提供的代码片段对您有用,并且您试图使用内置的特征运算符复制相同的功能:

参考^中的 Eigen 类型上没有定义运算符。但同样,您的剪辑中的运算符不在 Eigen 类型上,因为您的访问操作的返回值是对您用来声明的任何类型的 ValueType 引用。m(i,j)m

于 2012-09-12T06:40:05.100 回答