# How to sum row vector to every row in a matrix?

Hi,

I could not find in the documentation how to sum a row vector to every row in a matrix.

Here is a naive implementation of what I would like to achieve:

``````let my_matrix = DMatrix::from_row_slice(2, 2, &[
1.0, 2.0,
3.0, 4.0
]);

let my_vector = DVector::from_row_slice(&[10.0, 20.0]);

//Naive implementation. Can this be improved?
let mut result = DMatrix::zeros(my_matrix.nrows(), my_matrix.ncols());
for row in 0..my_matrix.nrows() {
for col in 0..my_matrix.ncols() {
result[(row, col)] = my_matrix[(row, col)] + my_vector[col];
}
}

let expected_result = DMatrix::from_row_slice(2, 2, &[
11.0, 22.0,
13.0, 24.0
]);

assert_eq!(expected_result, result);
``````

Hi!

There is no dedicated method for this. I think the most efficient way of doing this is the following:

``````let mut result = my_matrix.clone();
for (mut column, coeff) in result.column_iter_mut().zip(my_vector.iter()) {
Also keep in mind that if you are using matrices or vectors of small dimensions known at compile-time (like 2x2 in your example), you may use the stack-allocated types like `Vector2` or `Matrix2` which will generally be much more efficient than `DMatrix`.