Matrix multiplication using sumproduct

R

Rasoul Khoshravan

In some engineering calculations, we have multiplication of matrices or
matrices and vectors.

It is defined as follows by an example:

[A]= 2 3 5 (an array of 3 rows and 3 columns)

2 4 6

1 -2 4



= 6 (an array of 3 rows and 1 column)

-5

1

[A] * = 2*6+3*(-5)+5*1

2*6+4*(-5)+6*1

1*6+(-2)*(-5)+4*1



[A] * = 2$B!!(B(an array of 3 rows and 1 column)

-2

20

For long time, I was performing this task by simple multiplication and
summation. Recently through this ng, I came to know about SUMPRODUCT command
and thought of writing a command to do matrices multiplication. I came to
following command which satisfies me. If you know any better way for
matirces multiplication, let me know. In real engineering problems sometimes
we have to perform this task for very big matrices like (100 rows by 100
columns, and even bigger ones) for calculation of inverse of a matrix, which
makes it very time consuming. For this reason approximate methods are
introduced. I was wondering if these calculations will be time-consuming in
Excel or not.

[A] from a1 to c3
from d1 to d3
[A]* from e1 to e3

In e1 I enter:
sumproduct(a1:c1,transpose(d$1:d$3)) entered as array formula (CSE)
drag the top formula to e2 and e3.
 
R

Rasoul Khoshravan

Is MMULT a built-in function or add-in one?
JMB said:
Try selecting E1:E3, enter
=MMULT($A$1:$C$3,$D$1:$D$3)
confirmed w/CSE


Rasoul Khoshravan said:
In some engineering calculations, we have multiplication of matrices or
matrices and vectors.

It is defined as follows by an example:

[A]= 2 3 5 (an array of 3 rows and 3 columns)

2 4 6

1 -2 4



= 6 (an array of 3 rows and 1 column)

-5

1

[A] * = 2*6+3*(-5)+5*1

2*6+4*(-5)+6*1

1*6+(-2)*(-5)+4*1



[A] * = 2 (an array of 3 rows and 1 column)

-2

20

For long time, I was performing this task by simple multiplication and
summation. Recently through this ng, I came to know about SUMPRODUCT
command
and thought of writing a command to do matrices multiplication. I came to
following command which satisfies me. If you know any better way for
matirces multiplication, let me know. In real engineering problems
sometimes
we have to perform this task for very big matrices like (100 rows by 100
columns, and even bigger ones) for calculation of inverse of a matrix,
which
makes it very time consuming. For this reason approximate methods are
introduced. I was wondering if these calculations will be time-consuming
in
Excel or not.

[A] from a1 to c3
from d1 to d3
[A]* from e1 to e3

In e1 I enter:
sumproduct(a1:c1,transpose(d$1:d$3)) entered as array formula (CSE)
drag the top formula to e2 and e3.
 
J

JMB

Seems to be built in (I'm using XL 2000 - wouldn't think they'd take it out
of subsequent versions, though).


Rasoul Khoshravan said:
Is MMULT a built-in function or add-in one?
JMB said:
Try selecting E1:E3, enter
=MMULT($A$1:$C$3,$D$1:$D$3)
confirmed w/CSE


Rasoul Khoshravan said:
In some engineering calculations, we have multiplication of matrices or
matrices and vectors.

It is defined as follows by an example:

[A]= 2 3 5 (an array of 3 rows and 3 columns)

2 4 6

1 -2 4



= 6 (an array of 3 rows and 1 column)

-5

1

[A] * = 2*6+3*(-5)+5*1

2*6+4*(-5)+6*1

1*6+(-2)*(-5)+4*1



[A] * = 2 (an array of 3 rows and 1 column)

-2

20

For long time, I was performing this task by simple multiplication and
summation. Recently through this ng, I came to know about SUMPRODUCT
command
and thought of writing a command to do matrices multiplication. I came to
following command which satisfies me. If you know any better way for
matirces multiplication, let me know. In real engineering problems
sometimes
we have to perform this task for very big matrices like (100 rows by 100
columns, and even bigger ones) for calculation of inverse of a matrix,
which
makes it very time consuming. For this reason approximate methods are
introduced. I was wondering if these calculations will be time-consuming
in
Excel or not.

[A] from a1 to c3
from d1 to d3
[A]* from e1 to e3

In e1 I enter:
sumproduct(a1:c1,transpose(d$1:d$3)) entered as array formula (CSE)
drag the top formula to e2 and e3.

 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top