简体   繁体   English

C ++特征库:将行向量中的元素与向量进行互斥

[英]C++ Eigen Library: Mutliplying vector with elements from row vector

I am trying to obtain a matrix consisting of the product between a vector and respective elements from a row vector like this: 我试图从这样的行向量中获得一个由向量​​和各个元素之间的乘积组成的矩阵:

Eigen::Vector3f vec;
vec << 1,
       2,
       3;

Eigen::RowVectorXf val;
val.setLinSpaced(5, 1, 5); //val = [1,2,3,4,5]

//result should be
//1,2,3,4,5
//2,4,6,8,10
//3,6,9,12,15

After seeing this question , I have tried 看到这个问题后 ,我尝试了

val.array().colwise()*vec.array()

and

vec.array().rowwise()*val.array()

but they just don't work. 但它们根本不起作用。

val is a 1xn vector. val是一个1xn向量。

您需要标准矩阵产品:

MatrixXf res = vec * val;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM