pub fn ml_cmatrix(s: &str) -> ComplexMatrix {
    let str_row = s.split(";").collect::<Vec<&str>>();
    let r = str_row.len();
    let str_data = str_row
        .iter()
        .map(|x| x.trim().split(" ").collect::<Vec<&str>>())
        .collect::<Vec<Vec<&str>>>();
    let c = str_data[0].len();
    let data = str_data
        .iter()
        .flat_map(|t| {
            t.iter()
                .map(|x| x.parse::<C64>().unwrap())
                .collect::<Vec<C64>>()
        })
        .collect::<Vec<C64>>();

    cmatrix(data, r, c, Shape::Row)
}
Matlab-like matrix constructor

Note that the entries to the `ml_cmatrix`
needs to be in the `a+bi` format
without any spaces between the real and imaginary
parts of the Complex number.

# 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");
let b = cmatrix(vec![C64::new(1f64, 1f64),
C64::new(2f64, 2f64),
C64::new(3f64, 3f64),
C64::new(4f64, 4f64)],
2, 2, Row
);
assert_eq!(a, b);
}
```
src/complex/matrix.rs