在 F# 中,float[] 和 float[][] 有什么区别,我如何初始化 float[][]?
In F# what is the difference between float[,] and float[][] and how do I initialise float[][]?
我用 F# 编写了一个使用 KMeans (http://accord-framework.net/docs/html/T_Accord_MachineLearning_KMeans.htm) 的函数。
一个名为 compute 的函数需要 float[][],但我从未在 F# 中见过它。只有浮动 [].
代码示例如下。
let ConverterForCluster =
我创建了一个 50 x 50 的基于零的数组。一旦我将其与 returns 一个浮点数 [] 的现有应用程序连接,这将被填充,目前我正试图到达编写一个从 [] 到 [][]
的转换器
我的距离数组声明为
let mutable Distance = Array2D.zeroCreate 50 50
KMeans 是 Accord.NET 库中的一种方法(link 在顶部)。
let km = KMeans(5)
我正在创建一个名为 dm 的新变量,以便 km(下面)的 Compute 函数可以接受它。但是,使用 Unchecked.defaultof 创建一个空数组,即错误
let dm : float[][] = Unchecked.defaultof<float[][]>
for i = 0 to 49 do
for j = 0 to 49 do
我相信从 float[] 到 float[][] 的转换没问题,但我还没有初始化 dm,所以我无法确认 100%
dm.[i].[j] <- Convert.ToDouble Distance.[i, j]
这个函数需要float[][],不接受[]
let label = km.Compute(dm)
label
例外情况是:
System.NullReferenceException was unhandled Message: An unhandled
exception of type 'System.NullReferenceException' occurred in
Cluster.exe Additional information: Object reference not set to an
instance of an object.
这个错误在下面一行
dm.[i].[j] <- Convert.ToDouble Distance.[i, j]
因为 dm 由于以下行而为空,因为我不知道如何初始化它
let dm : float[][] = Unchecked.defaultof<float[][]>
我的问题是如何初始化这种类型的数组?有什么区别?
如果我从中遗漏了任何内容,请告诉我,或者如果它没有意义。谢谢。
let dm : float[][] = [| for a in 0 .. 49 do yield [| 0.0 .. 49.0 |] |]
我用 F# 编写了一个使用 KMeans (http://accord-framework.net/docs/html/T_Accord_MachineLearning_KMeans.htm) 的函数。
一个名为 compute 的函数需要 float[][],但我从未在 F# 中见过它。只有浮动 [].
代码示例如下。
let ConverterForCluster =
我创建了一个 50 x 50 的基于零的数组。一旦我将其与 returns 一个浮点数 [] 的现有应用程序连接,这将被填充,目前我正试图到达编写一个从 [] 到 [][]
的转换器我的距离数组声明为
let mutable Distance = Array2D.zeroCreate 50 50
KMeans 是 Accord.NET 库中的一种方法(link 在顶部)。
let km = KMeans(5)
我正在创建一个名为 dm 的新变量,以便 km(下面)的 Compute 函数可以接受它。但是,使用 Unchecked.defaultof 创建一个空数组,即错误
let dm : float[][] = Unchecked.defaultof<float[][]>
for i = 0 to 49 do
for j = 0 to 49 do
我相信从 float[] 到 float[][] 的转换没问题,但我还没有初始化 dm,所以我无法确认 100%
dm.[i].[j] <- Convert.ToDouble Distance.[i, j]
这个函数需要float[][],不接受[]
let label = km.Compute(dm)
label
例外情况是:
System.NullReferenceException was unhandled Message: An unhandled exception of type 'System.NullReferenceException' occurred in Cluster.exe Additional information: Object reference not set to an instance of an object.
这个错误在下面一行
dm.[i].[j] <- Convert.ToDouble Distance.[i, j]
因为 dm 由于以下行而为空,因为我不知道如何初始化它
let dm : float[][] = Unchecked.defaultof<float[][]>
我的问题是如何初始化这种类型的数组?有什么区别?
如果我从中遗漏了任何内容,请告诉我,或者如果它没有意义。谢谢。
let dm : float[][] = [| for a in 0 .. 49 do yield [| 0.0 .. 49.0 |] |]