所以我试图让标准差函数起作用,但是我遇到了错误。这是我的代码:
func standardDeviation(dataSet: [Double]) -> Double {
let mean = dataSet.reduce(0, +) / Double(dataSet.count)
var distances = [Double]()
for number in dataSet {
let distanceFromMean = (dataSet[Int(number)] - mean)
distances.append(distanceFromMean * distanceFromMean)
}
return distances.reduce(0, +) / Double(dataSet.count)
}
它输出以下错误:
Fatal Error: Index out of range
所以,我有一种感觉,当我调用 dataSet 数组时,这是要做的事情,所以当我研究它时,我发现这是一个错误
error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0). The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation.
最佳答案
number
(Double
!)不能作为订阅dataSet
的索引,所以我很确定您的意思/em>
let distanceFromMean = number - mean
在快速枚举
模式中,索引变量number
实际上等于array[index]
关于arrays - Swift:调用函数时调用 EXC_BAD_INSTRUCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46855351/