Ich versuche, eine Matrix zu machen, wie:Wie erstellt man eine Matrix mit einer anderen Liste mit Python?
s = [[s11 s12 s13 s14]
[s21 s22 s23 s24]
[s31 s32 s33 s34]
[s41 s42 s43 s44]]
, wo ich jedes Array der durch s Matrix erhalten:
sii = a(i) ; for s11, s22, ... and s44
sij = b(j)**2 + 10 ; for s12=s21, s23=s32,s13=s31, ...
hier, a und b Listen von Daten:
a = [0.1, 0.25, 0.12, 0.45, 0.98]
b = [0.1, 0.25, 0.12, 0.45, 0.98, 1]
Also, wenn ich die folgenden:
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))
Es gibt mir einen Fehler. Wie kann ich dieses Problem lösen? Vielen Dank.
Warum 'b' haben Länge 10, wenn Sie versuchen, quadratische Matrix zu erstellen? – kvorobiev
Oh. Nein. Das wird in den Arrays der Matrix außer Diagonale platziert. Zum Beispiel s12 = s21 = 0.1, s13 = s31 = 0.25, ... – ats22
Bitte, siehe meine Antwort. – kvorobiev