F# 如何将浮点值写入f中的文件#

F# 如何将浮点值写入f中的文件#,f#,F#,我尝试了以下代码我做错了什么 // Test IO // Write a test file let str : string[,] = Array2D.init 1 ASize (fun i j -> result.[i,j].ToString() ) System.IO.File.WriteAllLines(@"test.txt", str ); 因为没有接受二维字符串数组的重载。您应该将其转换为1d数组或seq。在您的代码中,Array2D.init的第一个参数总

我尝试了以下代码我做错了什么

// Test IO
// Write a test file
    let str : string[,] = Array2D.init 1 ASize (fun i j -> result.[i,j].ToString() ) 
    System.IO.File.WriteAllLines(@"test.txt", str );

因为没有接受二维字符串数组的重载。您应该将其转换为1d数组或seq。

在您的代码中,
Array2D.init
的第一个参数总是1吗?如果是,则只需创建一维数组,即可正常工作:

let str = Array.init ASize (fun j -> result.[0,j].ToString() )  
System.IO.File.WriteAllLines("test.txt", str ); 
如果确实需要将二维数组写入文件,则可以将二维数组转换为一维数组。我能想到的最简单的方法是:

let separator = ""
let ar = Array.init (str.GetLength(0)) (fun i -> 
  seq { for j in 0 .. str.GetLength(1) - 1 -> str.[i, j] }
  |> String.concat separator )

这将生成一个一维数组(沿第一个坐标),然后沿第二个坐标聚合元素。它使用
String.concat
,因此您可以在一行中指定项目之间的分隔符。

Thanx,我做了以下代码,效果非常好//测试IO//编写一个测试文件let vecstr=ShapPack.TwoDVector twodisalarray let str:String[]=Array.init(ArraySize*ArraySize)(fun i->vecstr[0,i].ToString())System.IO.File.writeAllines(@“test.txt”,str);