WelcomeBasicsPlots and GUIApplicationsOther
|
Matrix
Multiplication
If A
is a matrix of dimension m
x r, and B
is a matrix of dimension r
x n, you
can find the product AB
of dimension m
x n by
doing the following:
1. To find the element in row i
and column j
of matrix AB,
you take row i
of matrix A
and column j
of matrix B.
2. You multiply the corresponding elements of that row and that column
and add up all the products.
In
this example, we show a code in Matlab that performs a matrix
multiplication step-by-step. The algorithm
displays all the
elements being considered for the multiplication and shows how the
resulting matrix is being formed in each step. Obviously, Matlab can do
it with just one operation (using the ' * ' operator, as in A*B), but
we want to show every step of the
process, as well as an example of how nested iterations
work in Matlab.
Example:
% Clear
screen, clear previous variables and closes all figures
clc; close all; clear
% Avoid empty
lines
format compact
% Define
matrices, for example these
A = [2 1 4 1 2; 1 0 1 2 -1; 2 3 -1 0 -2]
B = [-2 -1 2; 0 2 1; -1 1 4; 3 0 1; 2 1 2]
% The size of
each matrix is considered for these calculations
[r1 c1] = size(A);
[r2 c2] = size(B);
% prevent
unappropriate matrix size
if c1 ~= r2
disp ('*** not able to multiply matrices
***')
end
% Main code
% Vary each
row of matrix A
for i = 1 : r1
% Vary each column of matrix B
for j = 1 : c2
% Reset every new element of the final result
s = 0;
% Vary each column of matrix A and row of matrix B
for k = 1 : c1
% Display every element to take into account
A(i,k)
B(k,j)
% Prepare the addition in the iteration
s = s + A(i,k) * B(k,j);
end
% Assign the total of the appropriate element
% to the final matrix
C(i,j) = s
end
end
% Compare our
result with a multiplication by Matlab
A*B
Matlab displays the following results:
A =
2
1
4
1 2
1
0
1
2 -1
2
3
-1
0 -2
B =
-2
-1 2
0
2 1
-1
1 4
3
0 1
2
1 2
then, the command window shows all the elements being considered and
how the product AB
(C)
is being formed, and finalizes with our result and the multiplication
achieved by Matlab itself.
C =
-1
6 26
1
-1 6
-7
1 -1
ans =
-1
6 26
1
-1 6
-7
1 -1
From
'Matrix Multiplication' to home
From
'Matrix Multiplication' to 'Control Flow'
|
|
|