In my code I am using a MatrixXd array using eigen C++. I want to change my matrix as shown below
#include <eigen3/Eigen/Dense>
int main(){
Eigen::MatrixXd m(3,3);
m << 1,2,3,
4,5,6,
7,8,9;
// fixed-size block expression
m.block<1,2>(0,0) = 99; // Compiler Error
//dynamic-size block expression
m.block(0,0,1,2) = 99; // Compiler Error
std::cout<<m<<endl;
}
Expected Output:
99 99 3
4 5 6
7 8 9
If m
is a Matrix object you need to write either of these:
m.block<1,2>(0,0).setConstant(99);
m.block<1,2>(0,0).array() = 99;
Alternativly, declare m
as an ArrayXXd
object:
Eigen::ArrayXXd m(3,3);
m << 1,2,3,
4,5,6,
7,8,9;
m.block<1,2>(0,0) = 99;