我是F#的新人。
我想转置一个矩阵,我可以用任何其他语言的循环来做这个,但我想用out循环来做。
我的矩阵声明:
let BuildEmptyBord:BordCell[][]=[|for i in 1..3->[|for i in 1..3->BordCell.Empty|]|]
所以请帮助
答案 0 :(得分:2)
对于矩阵作为锯齿状数组,您可以使用Array.init
函数,然后重新创建交换尺寸的矩阵,如下所示:
let transpose (matrix:_ [][]) =
if matrix.Length = 0 then failwith "Invalid matrix"
Array.init matrix.[0].Length (fun i ->
Array.init matrix.Length (fun j ->
matrix.[j].[i]))