MatLab到Eigen - 标量提升到矩阵的幂

时间:2017-06-22 10:02:43

标签: c++ matlab eigen3 matlab-to-eigen

我在MatLab中有以下代码,我希望在特征库中使用特征库移植到C ++:

N(:,i)=2.^L(:,i)+1;

其中L是对称矩阵(1,2; 2,1),对角元素都是一个。

在特征(不支持)中我注意到有一个函数来计算矩阵的指数,但没有一个函数可以将任意标量提升到矩阵幂。

http://eigen.tuxfamily.org/dox-devel/unsupported/group__MatrixFunctions__Module.html#matrixbase_exp

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:0)

如果您真的想将任意标量提升为矩阵幂,则应使用标识a^x = exp(log(a)*x)。 但是,Matlab .^运算符计算元素方面的幂。如果您想在Eigen中使用相同的内容,请使用相应的Array功能:

N.col(i) = pow(2.0, L.col(i).array()) + 1.0;

请注意Eigen开始索引为0,Matlab从1开始,因此您可能需要将i替换为i-1