Как я уже сказал. Я бы потянулся к Array.fold_left, чтобы решить это упражнение, если целью является построение строки. Вот как вы можете применить Array.fold_left к одиночному массиву с плавающей точкой, чтобы получить строку.
let arr = [|1.0; 2.0; 3.0|]
let farr_to_string arr =
Array.fold_left (fun acc elem -> acc ^ (string_of_float elem)) "" arr
let () = print_endline (farr_to_string arr)
Теперь вам нужно создать другую функцию, которая принимает 2D-массив с плавающей точкой и снова применяет Array.fold_left.