让我们说我有一系列字符,我从控制台输入.如何以下列方式将它们写入二维数组:
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
或者使用列表会更好吗?
谢谢!
假设您在长度为25的一维数组中输入:
let inputs = [| 1 .. 25 |]
Run Code Online (Sandbox Code Playgroud)
您可以使用以下Array2D.init函数创建一个二维数组,该数组将数据存储在5x5网格中:
let arr = Array2D.init 5 5 (fun i j -> inputs.[j*5 + i])
Run Code Online (Sandbox Code Playgroud)
该函数使用指定的大小(前两个参数)初始化数组,并调用提供的函数来填充数组中每个元素的值.通过访问索引处的元素j*5 + i,您可以获得样本中所需的结构.
编辑您不能向数组追加一行(数组具有固定大小),但您可以轻松地创建一个更大的数组并在那里复制数据:
let bigger = Array2D.zeroCreate 6 5
// Copy the whole contents of the original array
bigger.[0..4, 0..4] <- arr
// Write new data to the last row
bigger.[5..5, 0..4] <- array2D [[5;10;15;20;25]]
Run Code Online (Sandbox Code Playgroud)