Re: [eigen] Array cwise multiplication

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Does a.array().colwise() * b.array() work ?

We're a bit pedantic if we require putting array() here since the
colwise() makes it clear what you want to do...

Benoit

2010/9/29 Carlos Becker <carlosbecker@xxxxxxxxx>:
> Hi Benoit. No, it doesn't work and it makes sense, since it would be like
> multiplying a vector by a vector algebraically, which has no sense for a
> Matrix type (has it?)
> I wanted to do element-wise multiplication, and I thought that
> .array().colwise() would cope with that. Just to clarify, I want to do:
> if A = [1 2;
>           3 4]
> and B = [a;b] (matlab notation)
> then I want to get something like:
> result = [ 1*a, 2*a;
>              3*b 4*b ]
> Should I do this another way? I thought that .array().colwise() was defined
> to apply the element-wise operation for every column vector in A.
> Thanks
>
> On Wed, Sep 29, 2010 at 7:41 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
> wrote:
>>
>> 2010/9/29 Carlos Becker <carlosbecker@xxxxxxxxx>:
>> > Hi all, I was trying to code something like this:
>> > #include <Eigen/Dense>
>> > using namespace Eigen;
>> > using namespace std;
>> > int main()
>> > {
>> > MatrixXf a;
>> > VectorXf b;
>> > a.resize(2,4);
>> > b.resize(2);
>> > a << 1,2,
>> > 3,4,
>> > 5,6,
>> > 7,8;
>> > b << 1,2;
>> > a = a.array().colwise() * b;
>>
>> Here you're multiplying an array by a matrix.
>>
>> Doesn't a.colwise() * b work?
>>
>> Benoit
>>
>> > return 0;
>> > }
>> > Should this compile correctly? I want to multiply every column in matrix
>> > a,
>> > element-wise, with vector b, but I cannot make it work
>> > I hope I am not forgetting about something important here.
>> > Cheers,
>> > Carlos
>>
>>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/