'da '[Double]' türünde bir alt değer girilemiyor Swift'de matris oluşturmak için Swix'i kullanıyorum. Matrisimi bir x değerleri listesi kullanarak oluşturuyorum. X değerleri listemi tamsayıların bir listesi olduğunda bu bir sorun değildi, ancak x değerleri listemde ondalık sayıları kullanmaya çalıştığımda "Abonelik '[Double]' türünde bir değer olamaz" hatası alıyorum.Swift
@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))
}
konu satırında ortaya çıktı:
let element = x_values[x_parse] ^^ exponent
x_values konu olarak vurgulayarak İşte benim kodudur.
^^ operatörü tanımlayan kod şudur:
infix operator ^^ { }
func ^^ (radix: Int, power: Int) -> Int {
return Int(pow(Double(radix), Double(power)))
}
o çiftler içeriyorsa listemden değerleri erişmek bileyim
?
Bize, '^ ^' operatörünün Swix'te nasıl tanımlandığını gösterebilir misiniz (veya bu, kendinizin tanımladığınız bazı operatördür?)? Bu, göze çarpan bir hatanın klasik bir örneği gibi görünüyor: hatanın asıl kaynağının büyük olasılıkla x_values'i indeksleme denemesi değil, lhs 'x_values'de' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '}) ve rhs 'üssü (tür' Int'). – dfri
Swift standart kitaplığında '^^' operatörü yok, bu özel bir tanımlı olmalıdır. –
Yukarıda yaptığım küçük "yorumu düzenle": _ "... lhs' x_values [x_parse] '(' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '(' '' '' '' '' '' '' '' '' '' '' '' '' '' ''] 'i kullanın. @MartinR: [Swix] (https://github.com/stsievert/swix) 'den kısaca bahseder; – dfri