Matrices

Edit

Editing

There are few ways to insert matrix (matrices). From the menu: Insert=>Matrix, keybord shortcut CTRL+M, from the Matrices palette (Matrix 3x3), inserting the function mat(. You will get the 3x3 template, or the dialog box to insert the number of rows and columns. Let as assign to a variable name A, matrix with dimensions 3(rows)x3(columns). For instance, press: A: and then CTRL+M. The matrix template with 3x3 empty place holders will appear.

Image

If you change your mind about dimensions you can always change the matrix dimensions. Just click inside the matrix on the right lower corner. The black square with a vertical and horizontal line will appear. With the left mouse button (mouse pointer will change the appearance) drag and correct the dimensions. You can do that even if the placeholders are not empty,

Image

Let us now fil in the placeholder like in the following picture. If we point the matrix with the mouse, the tooltip will appear. This is the the symbolic presentation of matrix. As you could see, real numbers are presented as fractions and there are also two undefined variables (a and b, without numerical values)

Image

Edit

Usage:  Symbolic vs. Numeric

If we assign the values to variables a and b before the matrix definition, the result would be:

Image

We can present the result of matrix A symbolically (operator →) or numerically (operator = ). Note the difference:

Image

Edit

Extracting Elements

Also, the individual matrix element could be presented with the function el. Press el(A, or A[. You will see Image

Edit

Assigning Values to Elements

Now, you can insert single integer (vector) or two integers (matrix) to asign vector or matrix elements. Here (matrix) press 3,1→ or 3,1= . The value of A in the third row and first column will appear (the minimal row and column index is 1).

Image

Edit

Vectors

SMath will consider column matrix as vectors. Vector elements need only one index. Here is the example (row matrices still need two index, with the 1 as the first one)

Image

Edit

Advanced

It should be noted that elements of a matrix could be of different data type (numeric, text, units). Here are few simple examples demonstrating this feature.

Image

Note the using of function row and col to extract a single row or single column.

SMath also supports nested matrices, i.e. the matrix element could also be a matrix. See the next example.

Image

The individual elements are presented in the same way as before.

Image

Matrices in SMath are dynamic arrays and they can change their dimensions. For instance matrix function gives a matrix filled with zeros. See how you can do the same by assigning the zero value to the element z3 4.

Image

Try to put now, say, z5 5:=2

Besides the matrix/vector variables, there are also matrix/vector functions.

Image

Function f have a single argument and it returns a three element vector. The argument can be scalar,vector or matrix. Try it. Function ff expects two element vector, and function F expects two arguments and returns 2x2 matrix. Play with them.

When dealing with matrices, although there are many matrix/vector operators and functions, sooner or later there will loops be involved. Most often the single, double or nested for loops are used. See this simple example:

Image

You can initialize an empty matrix with a fixed dimension using the matrix(rows,cols) and setting one of the two arguments to 0.

Image