title: Assigning Values to multi dimensional Eigen matrix in c++?
body: <p>I have an Eigen matrix with a vector as the scalar type, defined as the following</p>
  
  <pre><code>Eigen::Matrix&lt;Eigen::VectorXd, Eigen::Dynamic, Eigen::Dynamic&gt; res = Eigen::Matrix&lt;Eigen::VectorXd, Eigen::Dynamic, Eigen::Dynamic&gt;::
          Constant(10,
              10,
              Eigen::VectorXd::Zero(3));
  </code></pre>
  
  <p>I can access and assign values as the following</p>
  
  <pre><code>res(0,0)(0) = 1;
  </code></pre>
  
  <p>I am trying to assign a matrix to each third index as the following</p>
  
  <pre><code>res(all_rows,all_cols)(0) = matrix
  </code></pre>
  
  <p>The following is my code</p>
  
  <pre><code>int main()
  {
      Eigen::Matrix&lt;Eigen::VectorXd, Eigen::Dynamic, Eigen::Dynamic&gt; res = Eigen::Matrix&lt;Eigen::VectorXd, Eigen::Dynamic, Eigen::Dynamic&gt;::
          Constant(10,
              10,
              Eigen::VectorXd::Zero(3));
  
      Eigen::MatrixXf x = Eigen::MatrixXf::Ones(10, 1)*2;
      Eigen::MatrixXf y = Eigen::MatrixXf::Ones(10, 1);
      Eigen::MatrixXf product = Eigen::MatrixXf::Zero(10, 10);
      MatrixXd m(2, 2);
      res(0, 0)(0) = 1;
      m(0, 0) = 3;
      m(1, 0) = 2.5;
  
      m(0, 1) = -1;
      m(1, 1) = m(1, 0) + m(0, 1);
      product = x*y.transpose();
      res.block(0,0,10,10)(0) = x*y.transpose();
  }
  </code></pre>
  
  <p>But when I try to compile the code, This line is giving the error</p>
  
  <pre><code>res.block(0,0,10,10)(0) = x*y.transpose();
  </code></pre>
  
  <p>I am getting the following following error.</p>
  
  <pre><code>Error   C2338   THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS
  </code></pre>
  
  <p>Is there a way to overcome this, or should I change my approach?</p>