Matrices and Vectors can be used in equations just like scalars. If possible, the element notation can be left out. If equations get ambiguous, element notation must be used!
K = 1; // Make all elements of K equal to 1.
M = C; // Make matrix M equal to matrix C (sizes have to be equal).
N = D*inverse(L); // Make matrix N equal to the matrix product of D
// and the inverse of L (sizes of N, D and L have to be equal).
N = [sin(time),cos(time);cos(time),-sin(time)]; // Make elements of N equal to functions.
L[4] = time; // Make element 4 of columned L equal to time.
D[2,5] = A[2,2]*B[1,1]; // Declare one element
To prevent multiple equations for assigning matrix elements, ranges can be assigned using a colon. E.g. 1:5 means element 1 to 5, 7:8 means element 7 and 8. Backward counting ranges (like 10:1) are not allowed!
D[2,1:5] = A[1,1:5]; // D[2,1] = A[1,1], ... , D[2,5] = A[1,5]
variables
real v[3],p[6,6];
equations
v = p[4:6,6]; // v[1] = p[4,6], ... , v[3] = p[6,6]
Some scalar operators can also be used for matrices and vectors. Depending on the specific operator, the meaning may differ for scalars, vectors and matrices.
Operator |
Description
|
* |
|
+ |
|
- |
|
.* |
|
./ |
|
.^ |
|
/ |
|
^ |
|
- |
|
+ |
|
| .. | |
A lot of special matrix and vector functions are supported in 20-sim: