Matrix Commands
The matrix object is used to store a 2D array of numerical
data values. A number of routines are provided to manipulate the
matrix object directly, illustrated below by simple examples. In order to keep
the data structure in memory, the matrix object has to be
declared.
Note that vectors should be defined as two-dimensional matrices to
distinguish between row and column vectors in order to be able to
perform matrix operations consistently.
List of Functions in this section:
set_matrix_size
create_matrix
initialise_matrix
copy_matrix
set_matrix_size
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
tag matrix to create |
datatype |
keyword |
yes |
- |
data type - must be real |
dimensions |
list of 2 integers |
yes |
- |
matrix dimensions |
name |
text |
yes |
- |
descriptive text string |
Description:
Allocate memory for a matrix object
create_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
tag of matrix to create |
datatype |
keyword |
yes |
- |
data type - must be real |
dimensions |
list of 2 integers |
yes |
- |
matrix dimensions |
name |
text |
yes |
- |
descriptive text string |
final arg |
text |
yes |
- |
input data |
Description:
Create a matrix object, includes allocation of the memory and
input of the data. The final argument is the data, e.g:
create_matrix matrix=a datatype=real dimensions= {4 4} name=A {
1. 0. 0. 2.
0. 1. 0. 0.
0. 0. 1. 0.
3. 0. 0. 1.
}
initialise_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
tag of matrix to create |
datatype |
keyword |
yes |
- |
data type - must be real |
dimensions |
list of 2 integers |
yes |
- |
matrix dimensions |
name |
text |
yes |
- |
descriptive text string |
Description:
Create a matrix object, and set all elements to zero.
initialise_matrix matrix=a datatype=real dimensions= {4 4} name=A
copy_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
from |
Matrix tag
|
yes |
- |
input matrix |
to |
Matrix tag
|
yes |
- |
result matrix (will be created) |
Description:
Copy a matrix
List of Functions in this section:
get_matrix_element
get_matrix_dimensions
set_matrix_element
print_matrix
get_matrix_element
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
denotes matrix to interrogate |
format |
text |
no |
- |
output format e.g. %12.5f |
indices |
list of 2 integers |
yes |
- |
which element to output |
Description:
Return value of an element of a matrix, e.g.
set a [ get_matrix_element matrix=a indices= {1 1} format=%12.5f ]
get_matrix_dimensions
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
denotes matrix to interrogate |
Description:
Return the dimensions of a matrix, as a Tcl list of 2 integers.
set_matrix_element
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
denotes matrix to modify |
indices |
list of 2 integers |
yes |
- |
which element to output |
value |
real |
yes |
- |
value to assign |
Description:
Assign an element of a matrix.
print_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
denotes matrix to create |
rows |
range |
no |
- |
which rows to print (default all) |
columns |
range |
no |
- |
which columns to print (default all) |
planes |
range |
no |
- |
for 3D matrices, which planes to print (default all) |
format |
C format |
no |
- |
format for output |
Description:
List contents of a matrix to stdout.
Optional arguments may be used to specify the format used for
printing, and the range of rows and columns to be listed. In the latter
case, $ is used to denote the largest legal row or column value.
print_matrix matrix=a format=%12.4f rows = {2,$} \
columns = {1,5}
List of Functions in this section:
diagonalise_matrix
invert_matrix
multiply_matrix
add_matrix
subtract_matrix
upscale_matrix
downscale_matrix
assign_matrix
transpose_matrix
symmetrize_matrix
diagonalise_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
denotes matrix to diagonalise |
evals |
Matrix tag
|
yes |
- |
matrix to hold eigenvalues (will be created) |
evecs |
Matrix tag
|
yes |
- |
matrix to hold eigenvectors (will be created) |
Description:
diagonalise_matrix will determine the eigenvalues and
eigenvectors of a real symmetric matrix.
diagonalise_matrix matrix=m evals=m1 evecs=m2
invert_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
denotes matrix to diagonalise |
result |
Matrix tag
|
yes |
- |
matrix to hold inverse (will be created) |
Description:
Invert a matrix.
multiply_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
left |
Matrix tag
|
yes |
- |
left hand matrix |
right |
Matrix tag
|
yes |
- |
right hand matrix |
result |
Matrix tag
|
yes |
- |
result matrix (will be created) |
Description:
multiply_matrix will determine the product of two matrices. The
number of columns in the left matrix must match the number of
rows in the right matrix.
multiply_matrix left=m1 right=m2 result=r
add_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
left |
Matrix tag
|
yes |
- |
left hand matrix |
right |
Matrix tag
|
yes |
- |
right hand matrix |
result |
Matrix tag
|
yes |
- |
result matrix (will be created) |
Description:
add_matrix will determine the sum of two matrices. The matrix
may be added to itself, and the result matrix may be either of the two
input matrices.
add_matrix left=m1 right=m2 result=r
subtract_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
left |
Matrix tag
|
yes |
- |
left hand matrix |
right |
Matrix tag
|
yes |
- |
right hand matrix |
result |
Matrix tag
|
yes |
- |
result matrix (will be created) |
Description:
subtract_matrix will determine the difference of two matrices. The matrix
may be subtracted from itself, and the result matrix may be either of the two
input matrices. The right matrix is subtracted from the left matrix.
subtract_matrix left=m1 right=m2 result=r
upscale_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
input matrix |
factor |
real |
yes |
- |
scale factor |
result |
Matrix tag
|
yes |
- |
result matrix (will be created) |
Description:
upscale_matrix will determine the result of a matrix multiplied
by a scalar. The result matrix may be the input matrix.
upscale_matrix matrix=m factor=3.0 result=r
downscale_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
input matrix |
factor |
real |
yes |
- |
scale factor |
result |
Matrix tag
|
yes |
- |
result matrix (will be created) |
Description:
downscale_matrix will determine the result of a matrix divided
by a scalar. The result matrix may be the input matrix.
downscale_matrix matrix=m factor=3.0 result=r
assign_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
from |
Matrix tag
|
yes |
- |
input matrix |
to |
real |
yes |
- |
scale factor |
row_mapping |
Tcl list of integers |
no |
- |
rows to assign to |
column_mapping |
Tcl list of integers |
no |
- |
columns to assign to |
plane_mapping |
Tcl list of integers |
no |
- |
planes to assign to (3D matrices) |
Description:
Assign_matrix copies the data values from a matrix to another
matrix. The optional column_mapping and row_mapping arguments specify
the destination row/column in the "to" matrix for each row/column in
the "from" matrix. Setting a mapping value to "-1" indicates that
the corresponding row/column should not be copied.
The result matrix must exist and, if a mapping is not
specified, must have the same shape as the input matrix.
assign_matrix from=a to=b column_mapping= {1 2 3} row_mapping= {4 3 2 1}
In this example, the first row of b is copied from the fourth row of
A, etc.
This routine also supports assignment of 3D matrices with the
optional plane_mapping argument. The from and to matrices do not have
to have the same number of dimensions providing an appropriate mapping is
specified.
transpose_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
input matrix |
result |
Matrix tag
|
yes |
- |
result matrix (will be created) |
Description:
Transpose a matrix. If the result matrix
does not exist at the time of the command, it is created. If the
result matrix does exist, all previous information is lost. The result
matrix may be the same as the input matrix, but results in a matrix
filled with zero-valued elements.
transpose_matrix matrix=a result=b
symmetrize_matrix
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
input matrix |
result |
Matrix tag
|
yes |
- |
result matrix (will be created) |
Description:
symmetrize_matrix will symmetrize a real square matrix. If the
result matrix does not exist at the time of the command, it is created. If the
result matrix does exist, all previous information is lost. The result
matrix may be the same as the input matrix.
symmetrize_matrix matrix=a result=b
List of Functions in this section:
get_average_matrix_value
get_rms_matrix_value
get_absmax_matrix_value
get_abs_matrix_value
get_average_matrix_value
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
input matrix |
Description:
Calculate the average matrix element
get_rms_matrix_value
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
input matrix |
Description:
Calculate the RMS matrix element
get_absmax_matrix_value
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
input matrix |
Description:
Find the maximum absolute matrix element
get_abs_matrix_value
Command Line Arguments
Argument |
Argument type |
Mandatory |
Default |
To specify |
matrix |
Matrix tag
|
yes |
- |
input matrix |
Description:
Retruns the square root of the sum of squares of all matrix elements (for
example absolute value of the gradient).
For the programmer there is a list C-callable Matrix manipulation routines
is also available
|