eigen 列拼接,使用Eigen C ++库将每个矩阵列与每个向量元素相乘

I need to multiply each matrix column by each vector element using Eigen C++ library. I tried colwise without success.

Sample data:

Eigen::Matrix3Xf A(3,2); //3x2

A << 1 2,

2 2,

3 5;

Eigen::Vector3f V = Eigen::Vector3f(2, 3);

//Expected result

C = A.colwise()*V;

//C

//2 6,

//4 6,

//6 15

//this means C 1st col by V first element and C 2nd col by V 2nd element.

Matrix A can have 3xN and V Nx1. Meaning (cols x rowls).

解决方案

This is what I would do:

Code

Eigen::Matrix3Xf A(3, 2); // 3x2

A << 1, 2, 2, 2, 3, 5;

Eigen::Vector3f V = Eigen::Vector3f(1, 2, 3);

const Eigen::Matrix3Xf C = A.array().colwise() * V.array();

std::cout << C << std::endl;

Example output:

你可能感兴趣的:(eigen,列拼接)