ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Matrix multiplication using sumproduct (https://www.excelbanter.com/excel-worksheet-functions/114527-matrix-multiplication-using-sumproduct.html)

Rasoul Khoshravan

Matrix multiplication using sumproduct
 
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



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

-5

1

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

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

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



[A] *[b] = 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
[b] from d1 to d3
[A]*[b] 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.



Rasoul Khoshravan

Matrix multiplication using sumproduct
 
Is MMULT a built-in function or add-in one?
"JMB" wrote in message
...
Try selecting E1:E3, enter
=MMULT($A$1:$C$3,$D$1:$D$3)
confirmed w/CSE


"Rasoul Khoshravan" wrote:

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



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

-5

1

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

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

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



[A] *[b] = 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
[b] from d1 to d3
[A]*[b] 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.





JMB

Matrix multiplication using sumproduct
 
Try selecting E1:E3, enter
=MMULT($A$1:$C$3,$D$1:$D$3)
confirmed w/CSE


"Rasoul Khoshravan" wrote:

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



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

-5

1

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

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

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



[A] *[b] = 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
[b] from d1 to d3
[A]*[b] 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.




JMB

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


"Rasoul Khoshravan" wrote:

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


"Rasoul Khoshravan" wrote:

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



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

-5

1

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

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

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



[A] *[b] = 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
[b] from d1 to d3
[A]*[b] 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.







All times are GMT +1. The time now is 04:12 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com