我試圖使一個矩陣爲:如何用python製作不同列表的矩陣?
s = [[s11 s12 s13 s14]
[s21 s22 s23 s24]
[s31 s32 s33 s34]
[s41 s42 s43 s44]]
在哪裏可以得到通過的矩陣S每個陣列:
sii = a(i) ; for s11, s22, ... and s44
sij = b(j)**2 + 10 ; for s12=s21, s23=s32,s13=s31, ...
這裏,a和b是數據列表:
a = [0.1, 0.25, 0.12, 0.45, 0.98]
b = [0.1, 0.25, 0.12, 0.45, 0.98, 1]
所以,當我使用以下命令:
import numpy as np
a = np.array([0.1, 0.25, 0.12, 0.45, 0.98])
b = np.array([0.1, 0.25, 0.12, 0.45, 0.98, 1])
i = 4 # matrix order
s = np.ones([i,i])
def matrix(s):
for i in range(len(a)):
s[i,i] = a[i]
for j in range(len(b)):
rc = (j + 1) % (len(b) - 1)
val = b[i]
s[rc+1, rc] = val
s[rc, rc + 1] = val
return s
print(matrix(s))
它給了我一個錯誤。我怎麼解決這個問題?謝謝。
爲什麼'b'的長度是10,如果你想創建方矩陣? – kvorobiev
哦。不會的。除了對角線之外,它將放置在矩陣的陣列中。例如,s12 = s21 = 0.1,s13 = s31 = 0.25,... – ats22
請參閱我的回答。 – kvorobiev