### operator: matrix

```    description:
matrix[opn, ..., op2, op1]
matrix[opn, ..., op2, op1] sp
maps operators to adjacency matrices

examples:
-- learn some knowledge:
M1 |x1> => 3|y2>
M1 |x2> => 7|y1> + 6|y2>
M1 |x3> => |y1> + 4|y2>
M1 |x4> => |y1>
M1 |x5> => 6|y1> + 4|y2>
M1 |x6> => 4|y1> + 8|y2>
M1 |x7> => |y1> + 2|y2>

M2 |y1> => 6|z1> + 2|z2> + 7|z3> + 9|z4> + 5|z5>
M2 |y2> => 3|z2> + 4|z3> + |z5>

-- display corresponding matrices:
matrix[M1]
[ y1 ] = [  0  7  1  1  6  4  1  ] [ x1 ]
[ y2 ]   [  3  6  4  0  4  8  2  ] [ x2 ]
[ x3 ]
[ x4 ]
[ x5 ]
[ x6 ]
[ x7 ]

matrix[M2]
[ z1 ] = [  6  0  ] [ y1 ]
[ z2 ]   [  2  3  ] [ y2 ]
[ z3 ]   [  7  4  ]
[ z4 ]   [  9  0  ]
[ z5 ]   [  5  1  ]

matrix[M2, M1]
[ z1 ] = [  6  0  ] [  0  7  1  1  6  4  1  ] [ x1 ]
[ z2 ]   [  2  3  ] [  3  6  4  0  4  8  2  ] [ x2 ]
[ z3 ]   [  7  4  ]                           [ x3 ]
[ z4 ]   [  9  0  ]                           [ x4 ]
[ z5 ]   [  5  1  ]                           [ x5 ]
[ x6 ]
[ x7 ]

matrix[M1, M2]
[  ] = [            ] [  6  0  ] [ y1 ]
[  2  3  ] [ y2 ]
[  7  4  ]
[  9  0  ]
[  5  1  ]

-- only display matrix for desired inputs:
matrix[M1] split |x1 x3 x5 x7>
[ y1 ] = [  0  1  6  1  ] [ x1 ]
[ y2 ]   [  3  4  4  2  ] [ x3 ]
[ x5 ]
[ x7 ]