使用標準函式庫正規化向量

任務

數學 / 向量與矩陣運算 / 正規化向量

未使用任何套件

此食譜僅使用 OCaml 標準函式庫

程式碼

sum 返回列表 lst 中所有 float 型別元素的總和。

let sum lst = List.fold_left ( +. ) 0. lst

返回平方和 sqsmagnitude(量值)。

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



食譜無法運作?註解不清楚或過時?

開啟一個 issue為此食譜貢獻