fn submat(&self, start: (usize, usize), end: (usize, usize)) -> ComplexMatrix {
        let row = end.0 - start.0 + 1;
        let col = end.1 - start.1 + 1;
        let mut result = cmatrix(vec![Complex::zero(); row * col], row, col, self.shape);
        for i in 0..row {
            for j in 0..col {
                result[(i, j)] = self[(start.0 + i, start.1 + j)];
            }
        }
        result
    }
Submatrix

# Description
Return below elements of complex matrix to a new complex matrix

$$
\begin{pmatrix}
\\ddots & & & & \\\\
& start & \\cdots & end.1 & \\\\
& \\vdots & \\ddots & \\vdots & \\\\
& end.0 & \\cdots & end & \\\\
& & & & \\ddots
\end{pmatrix}
$$

# Examples
```rust
#[macro_use]
extern crate peroxide;
use peroxide::fuga::*;
use peroxide::complex::matrix::*;

fn main() {
let a = ml_cmatrix("1.0+1.0i 2.0+2.0i 3.0+3.0i;
4.0+4.0i 5.0+5.0i 6.0+6.0i;
7.0+7.0i 8.0+8.0i 9.0+9.0i");
let b = cmatrix(vec![C64::new(5f64, 5f64),
C64::new(6f64, 6f64),
C64::new(8f64, 8f64),
C64::new(9f64, 9f64)],
2, 2, Row
);
let c = a.submat((1, 1), (2, 2));
assert_eq!(b, c);
}
```
src/complex/matrix.rs