Date: Apr 18, 2013 10:29 PM
Author: Nasser Abbasi
Subject: Re: vector and array element multiplication
On 4/18/2013 8:26 PM, Gorbeña wrote:

> Hi,

> I would like to create a second order polynomial from a vector or a matrix. Each element

>of the vector or matrix corresponds to an independedent variable.

>

> Given vector A, where A = [x1 x2 x3], I want the following result:

>

> [x1 x1² x1*x2 x1*x3 x2 x2*x1 x2² x1*x3 x3 x3*x1 x3*x2 x3²]

>

> In case I have matrix B = [a1 a2 a3; b1 b2 b3], the desired result will be:

>

> [a1 a1² a1*a2 a1*a3 a2 a2*a1 a2² a1*a3 a3 a3*a1 a3*a2 a3²;

> b1 b1² b1*b2 b1*b3 b2 b2*b1 b2² b1*b3 b3 b3*b1 b3*b2 b3²]

>

> Does anybody knows how to do this?

>

> Thanks

>

You can make each poly by multiplying each row by itself but after

transposing. (i.e. do an outer product)

-----------------

syms x1 x2 x3

V = [x1 x2 x3] %one row

C = V.'*V;

C = [V C(:).']

---------------------

[ x1, x2, x3, x1^2, x1*x2, x1*x3, x1*x2, x2^2, x2*x3, x1*x3, x2*x3, x3^2]

So for a matrix, just do the above outer product for its of its rows.

--Nasser