0
Swiftを使用してSwiftで行列を作成しています。私はx値のリストを使って行列を形成します。 x値のリストが整数のリストであったときは問題ではありませんでしたが、x値のリストに10進数を使用しようとすると、「[Double] '型の値を添字にできません。ラインに生じたSwiftで '[Double]'タイプの値をサブスクリプトできません
@IBAction func button(sender: UIButton) {
let x_values = [3.629, 2, 3]
let y_values:[Double] = [4, 8, 16]
// Counters for loops
var columns = 0
var x_parse = 0
// Create Swix matrix
var mat = eye(x_values.count)
// Assign values to matrix from x_values
while columns < x_values.count {
var rows = x_values.count - 1
var exponent = x_values.count
while rows > -1 {
let element = x_values[x_parse] ^^ exponent
mat[columns, rows] = element
rows = rows - 1
exponent = exponent - 1
}
columns = columns + 1
x_parse = x_parse + 1
}
let y_ndarray = asarray(y_values)
let solution = solve(mat, b: y_ndarray)
print(String(solution))
print(solution)
print(label.text = String(solution))
}
問題:ここに私のコードがある
問題として x_valuesを強調let element = x_values[x_parse] ^^ exponent
。
^^演算子を定義するコードは次のとおりです。
infix operator ^^ { }
func ^^ (radix: Int, power: Int) -> Int {
return Int(pow(Double(radix), Double(power)))
}
それはダブルスが含まれている場合、私は私のリスト内の値にアクセスする必要がありますどのように
?
Swixで '^^'演算子がどのように定義されているか(またはあなた自身で定義した演算子ですか?)を教えてください。これは古典的な難読化されたエラーのようです:エラーの実際の原因は 'x_values'を索引付けしようとするのではなく、lhs' x_values'( '[Double]' )とrhs '指数部(型' Int')である。 – dfri
Swift標準ライブラリには '^^'演算子はありません。これはカスタム定義のものでなければなりません。 –
上記の私のコメントにマイナーな "編集":_ "... lhs' x_values [x_parse] '(タイプ' Double')とrhs '指数'(タイプ 'Int')" _で '^^'を使用。 @MartinR:彼は[Swix](https://github.com/stsievert/swix)を簡単に言及しています。 – dfri