Browse thread
[Caml-list] laconical input from a file for arrays and/or matrices
-
Khamenia, Valery
-
samsaga2
- Virgile Prevosto
- Richard Jones
- Issac Trotts
-
samsaga2
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2004-02-02 (14:20) |
From: | Virgile Prevosto <virgile.prevosto@m...> |
Subject: | Re: [Caml-list] laconical input from a file for arrays and/or matrices |
: Le lundi 02 février, à 11h57 +0100, samsaga2 a écrit: > let output_matirx m = output_value stdout m > let input_matrix () = input_value stdin > > But no compatible with c++ files :-P > > Khamenia, Valery wrote: > > here goes my usual way to input ASCII matrices from file in C++: # let x = Array.make_matrix 1 1 3 in output_value stdout x;; ¦¾C - : unit = () I doubt that we can speak of ASCII matrices in that case ;-) Anyway, it's not so difficult to obtain a code fragment close to the C++ one, thanks to the Array and Scanf modules: (* CAML version. *) let input_matrix () = let m = read_int () in let n = read_int () in let matrix = Array.make_matrix m n 0. in for i = 0 to (m - 1) do for j = 0 to (n -1) do matrix.(i).(j) <- Scanf.scanf "%f " (fun x -> x) done done; matrix;; val input_matrix : unit -> float array array = <fun> Of course, you'll have to adapt the formatting instruction of scanf to your datas (the main problem here is that scanf expects to fins a blank after each entry, which means that your file must end with a newline or a space). -- E tutto per oggi, a la prossima volta Virgile ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners