我有一组阵列P,它代表一个矩阵,作为一个行矢量的阵列(对于我的目的来说,表示更方便),我想提取该阵列的柱形矢量j。我的第一个通行证是:
let column (M: float[][]) (j: int) =
Array.map(fun v -> v.[j]) M
这无法编译, 告诉我 v. v. [j] 正在使用操作员expr. [idx] 在一个不确定类型对象上使用操作员expr. [idx] 。 这让我困惑不解, 因为盘旋于 v 承认 v 是一个浮点, 我认为这是一个行矢量 。
此外,下列代码还起作用:
let column (M: float[][]) (j: int) =
Array.map(fun v -> v) M
|> Array.map (fun v -> v.[j])
我无法理解第二个例子与第一个例子有什么不同。第二个例子的第一幅地图看起来多余:我为自己绘制了一个阵列,然而这似乎解决了类型确定问题。
任何帮助理解我做错事或看不到的事都会感激不尽!