pub fn element_wise_matrix_operation<T>( matrix1: &Vec<Vec<T>>, matrix2: &Vec<Vec<T>>, operation: &str, ) -> Vec<Vec<T>>where T: Copy + Debug + Mul<Output = T> + Add<Output = T> + Sub<Output = T> + Div<Output = T> + PartialEq + FromStr, <T as FromStr>::Err: Debug,