Basic Matrix Operations
[ Dimensions of a Matrix ]
[ Matrix Copy ]
[ Matrix Transpose ]
[ Maximum and Minimum Matrix Elements ]
[ Euclidean Norm ]
For more details and examples, please consult Technical Report T.R. 95-74.
The number of rows and columns in a matrix may be extracted, and used in the construction of general purpose problem solving procedures. For example, a common use for matrix dimensions is in setting the beginning and end points for looping constructs in numerical algorithms.
FUNCTION PURPOSE
=====================================================================
Dimension( A ) Extract the number of rows and columns in matrix
"A" and return the result in a (1x2) matrix.
Element [1][1] holds the number of rows in "A"
Element [1][2] holds the number of columns in "A"
Example 1 : The script of code:
Z = One([ 13, 20]); /* Allocate 3 by 20 matrix called Z */
size = Dimension(Z); /* Extract and print dimensions of Z */
print "Rows in [Z] = ",size[1][1] ,"\n";
print "Columns in [Z] = ",size[1][2] ,"\n";
generates the output:
Rows in [Z] = 1.3000e+01
Columns in [Z] = 2.0000e+01
Let X be a (mxn) matrix. A copy of X can be made by simply writing
Y = X;
There are situations, however, where a matrix copy is needed, but without an assignment. The matrix function
FUNCTION DESCRIPTION
================================================================
Copy(A) Takes one matrix argument, and returns
a matrix copy.
Of course, Copy() can be used with an assignment.
Example 2 : The script of code:
/* [a] : Define and print (1x3) test matrix */
response = [ 1 sec, 2 cm/sec, 3 cm/sec^2 ];
PrintMatrix( response );
/* [b] : Copy and print "response" matrices */
copy1 = response;
copy2 = Copy ( response );
PrintMatrix( copy1, copy2 );
generates the output:
MATRIX : "response"
row/col 1 2 3
units sec m/sec m/sec^2
1 1.00000e+00 2.00000e-02 3.00000e-02
MATRIX : "copy1"
row/col 1 2 3
units sec m/sec m/sec^2
1 1.00000e+00 2.00000e-02 3.00000e-02
MATRIX : "copy2"
row/col 1 2 3
units sec m/sec m/sec^2
1 1.00000e+00 2.00000e-02 3.00000e-02
Example 3 : The script of code:
/* [a] : Define and print (1x3) test matrix */
response = [ 1 sec, 2 cm/sec, 3 cm/sec^2 ];
PrintMatrix( response );
/* [b] : Copy and print "response" matrices */
copy1 = response;
PrintMatrix( copy1, Copy (response) );
generates the same block of output as in Example 2.
Let "A" be a (mxn) matrix. The matrix transpose of "A" is a (nxm) matrix with the rows and columns of A interchanged.
FUNCTION DESCRIPTION
================================================================
Trans(A) Generates a new matrix corresponding to the
matrix transpose of "A"
Example 4 : The script of code:
/* [a] : Define and print (1x3) test matrix */
response = [ 0 sec, 0 cm/sec, 0 cm/sec^2 ;
1 sec, 2 cm/sec, 3 cm/sec^2 ];
PrintMatrix( response );
/* [b] : Compute and print transpose of "response" */
transpose1 = Trans(response);
PrintMatrix( transpose1 );
generates the output:
MATRIX : "response"
row/col 1 2 3
units sec m/sec m/sec^2
1 0.00000e+00 0.00000e+00 0.00000e+00
2 1.00000e+00 2.00000e-02 3.00000e-02
MATRIX : "transpose1"
row/col 1 2
units
1 sec 0.00000e+00 1.00000e+00
2 m/sec 0.00000e+00 2.00000e-02
3 m/sec^2 0.00000e+00 3.00000e-02
FUNCTION PURPOSE
===============================================================
Min ( A ) Return a (1x1) matrix containing the minimum
matrix element in matrix "A".
Max ( A ) Return a (1x1) matrix containing the maximum
matrix element in matrix "A".
Example 5 : The script
A = [ 3.78, 9.7, -4.7, 10.50 ;
0.00, -5.8, 0.2, -9.34] ;
MaxValue = Max( A );
MinValue = Min( A );
PrintMatrix(A);
print "\n";
print "Max(A) =", MaxValue ,"\n";
print "Min(A) =", MinValue ,"\n";
generates the output
MATRIX : "A"
row/col 1 2 3 4
units
1 3.78000e+00 9.70000e+00 -4.70000e+00 1.05000e+01
2 0.00000e+00 -5.80000e+00 2.00000e-01 -9.34000e+00
Max(A) = 10.5
Min(A) = -9.34
Note. In Aladdin 2, Max() and Min() truncate the units from the matrix element. In other words, the max/min test applies to the max/min numerical value of the matrix element. We need to change the program so that when all of the elements have the same units type, Min()/Max() also returns the units.
The L2 norm of a row matrix or column matrix is simply the square root of the sum of the matrix elements squared.
FUNCTION PURPOSE
===================================================================
L2Norm( A ) Compute L2 norm of either a (1xn) matrix or a
(nx1) matrix.
Example 6 : The script
/* [a] : Define (1x4) test vector and compute L2 norm */
testVector = [ 1, 2, 3, 4 ];
norm = L2Norm( testVector );
/* [b] : Print "testVector" and L2 norm */
PrintMatrix( testVector );
print "\n";
print "L2 norm of testVector is :", norm, "\n";
generates the output:
MATRIX : "testVector"
row/col 1 2 3 4
units
1 1.00000e+00 2.00000e+00 3.00000e+00 4.00000e+00
L2 norm of testVector is : 5.477
Developed in 1996-1997 by Mark Austin,
Copyright © 1996-2000, Mark Austin, University of Maryland.