2017-07-26 60 views
0

以下示例我需要從文件(無問題)中讀取值並將其放入方法「func(r * Regression)Train(d ... * dataPoint)」中數據點。這工作:如何從循環中填充變量參數

r.Train(
    regression.DataPoint(1, []float64{1, 1, 1}), 
    regression.DataPoint(4, []float64{2, 2, 2}), 
    regression.DataPoint(9, []float64{3, 3, 3}), 
) 

,但我希望把它從一個循環是這樣的:

for i := 1; i <= 4; i++ { 
    ??? regression.DataPoint(i*i, []float64{i, i, i}), ??? 
} 

,因爲它是唯一在包裝可見我不能使用的數據點的數組。下面是完整的源代碼:

https://github.com/sajari/regression(見用法示例)

非常感謝你,

馬切伊

回答

1

從你的鏈接頁面:

Note: You can also add data points one by one. 

因此你需要:

for i := 1; i <= 4; i++ { 
    r.Train(regression.DataPoint(i*i, []float64{i, i, i})) 
} 
0

@米洛的答案很可能是最適合你的特殊情況,但對於可變參數的功能一般情況下,可以追加元素到切片,然後用切片作爲一個可變的參數列表:

r.Train(points...) 

不幸的是,迴歸圖書館設計不是很好,因爲它具有公開曝光的功能,可以接收和返回未曝光的類型,使您無法使用它們。