簡體   English   中英

使用 NSExpression 手動實現標准差

[英]Manual implementation of Standard Deviation with NSExpression

看起來 iOS 上的Core Data的標准偏差方法不存在,所以我試圖手動完成。

我剛從NSExpression開始,所以我正在努力解決這個問題:

let numbers = [4, -2]
let numbersExpr = NSExpression(forConstantValue: numbers)

let avgExpr = NSExpression(forFunction: "average:", arguments: [numbersExpr])
let subExpr = NSExpression(forFunction: "from:subtract:", arguments: [numbersExpr, avgExpr])

let v = subExpr.expressionValue(with: nil, context: nil)

在我的subExpr ,我試圖將平均值減去我的 numbers 數組的所有值,但是在嘗試評估最后一行的 v 時它會崩潰。

如何用NSExpressions做到這一點?

崩潰的是subExpr

let subExpr = NSExpression(forFunction: "from:subtract:", arguments: [numbersExpr, avgExpr])

內置的from:subtract:期望它的 arguments 是“兩個代表數字的NSExpression對象”,但你的第一個參數是一個數組。

NSExpression的內置函數並不是真正為矢量數學設計的。 使用init(block:arguments:)可能會獲得您的目標。 但是,您將無法將其與 Core Data 一起使用(您的問題中未提及,但您使用了標簽)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM