I have two vectorXd in my program and I like to concatenate them into one vector, so that the second one's values goes after the first one, I found this for matrix but it doesn't seem to work on Vectors:
Asked
Active
Viewed 2.4k times
1 Answers
17
Like so, assuming you have vec1
and vec2
already:
VectorXd vec_joined(vec1.size() + vec2.size());
vec_joined << vec1, vec2;
(Note that the vector types are simply typedefs of matrix types constrained to have only one column.)
Further reading: Advanced initialization
-
12Shouldn't the first line above be `VectorXd vec_joined( vec1.rows() + vec2.rows() );`? Without first initializing the vector `vec_joined` it will spit assertion failures ... – nils Aug 25 '15 at 13:22
-
1Would this syntax work with more than two vectors? For example, provided proper initialisation has been done before hand: `vec_joined << vec1, vec2, vec3;` – LNiederha Nov 30 '20 at 10:22