使用標準函式庫正規化向量
任務
數學 / 向量與矩陣運算 / 正規化向量
未使用任何套件
此食譜僅使用 OCaml 標準函式庫。程式碼
sum
返回列表 lst
中所有 float
型別元素的總和。
let sum lst = List.fold_left ( +. ) 0. lst
返回平方和 sqs
的 magnitude
(量值)。
let magnitude sqs = Float.sqrt (sum sqs)
normalize
接受一個 float
數值列表 v
,並返回對應的單位向量,也以列表形式表示。
let normalize v =
let sqs = List.map (fun x -> x *. x) v in
let m = magnitude sqs in
List.map (fun x -> x /. m) v
範例用法。
使用格式字串 "%.2f"
,為了易於閱讀,float
值四捨五入到小數點後第二位。
let () =
let vector = [4.;6.;-1.]
let vhat = normalize vector;;
List.iter (Printf.printf "%.2f ") vhat