1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
---
title: "A quick introduction to iemmatrix"
# the lower the weight, the earlier it is sorted
weight: 1
draft: false
---
## hello world
A *matrix* is a two-dimensional array of numbers.
*iemmatrix* uses a special {{<pdmsg matrix >}} message to send matrices from one object to another.
This message consists of the selector `matrix` followed by the number of *rows* and *columns*, and finally the data in row-major order:
$$
\texttt{[matrix 2 3 10 20 30 40 50 60(}
\to
\begin{pmatrix}
10 & 20 & 30 \cr
40 & 50 & 60
\end{pmatrix}
$$

The actual message format usually does not need to concern the user,
as matrices are created and processed by specialized objects.
## creating special matrices
The {{< pdobj mtx >}} object understands messages to create some special matrices:

There's also a number of specialized objects to create these matrices, e.g.
{{< pdobj mtx_ones >}}, {{< pdobj mtx_zeros >}},
{{< pdobj mtx_eye >}}, {{< pdobj mtx_egg >}},
{{< pdobj mtx_diag >}}, {{< pdobj mtx_diegg >}}
and {{< pdobj mtx_rand >}}.
## binary operators

The {{< pdobj "mtx_+" >}}, {{< pdobj "mtx_-" >}},
{{< pdobj "mtx_.*" >}}, {{< pdobj "mtx_./" >}},
{{< pdobj "mtx_.^" >}},
{{< pdobj "mtx_>" >}}, {{< pdobj "mtx_>=" >}},
{{< pdobj "mtx_<" >}}, {{< pdobj "mtx_<=" >}},
{{< pdobj "mtx_==" >}} & {{< pdobj "mtx_!=" >}}
{{< pdobj "mtx_&&" >}} and {{< pdobj "mtx_||" >}},
{{< pdobj "mtx_&" >}} and {{< pdobj "mtx_|" >}}
objects all perform element-wise operations.
The operations are the same as their Pd-vanilla non-matrix counterparts.
For proper matrix multiplication use {{< pdobj "mtx_*" >}}.
## basic manipulation

## advanced manipulation

## Examples
### finding the maximum, replacing it with -777

### lin-swept sine

### simple peak picker

|