J'ai une configuration qui ressemble à ceci, et je rencontre des problèmes lorsque j'essaie d'appeler une fonction après avoir fait des calculs matriciels. Je voulais voir s'il y avait un moyen plus efficace de le faire:Python: TypeError: impossible de multiplier la séquence par un non-int de type 'float' et TypeError: un mauvais type d'opérande pour unary -: 'list', le moyen le plus propre de le coder?
#Define functions
def function_7(func_7):
func_7 = []
func_7.append([ [ [0,0], [0, -func7] ] ])
return func7_
def function_5(func_5):
func_5 = []
slope_func5 = 1/math.sqrt(3)
theta = math.atan(slope_func5)
x_func5 = func_5*math.cos(theta)
y_func5 = func_5*math.sin(theta)
func_5.append([ [[0, x_func5], [0, y_func5]], [[0, -x_func5], [0, y_func5]] ])
return func_5_
func5_list = []
func7_list = []
#Set up matrix here
my_list = (0, 10, 1)
for i in my_list:
A = np.matrix([[0, 0, 1, 1, 0, 0],
[1, 1, 0, 0, 0, 0],
[2, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 1.5, 1.5],
[3, 0, 0, 0, 0, 1.5],
[0, 0, 0, 0, 0, 1]
B = lambda i: np.matrix([[3], [8], [6], [12], [5], [i]])
var = np.linalg.solve(A, B(i))
func7_list.append(function_7(float(var[1,:]))
func5_list.append(function_5(float(var[2,:]))
Lorsque je tente de faire appel à function_7 et ajouter quelque chose à func7_list, je reçois cette erreur:
TypeError: bad operand type for unary -: 'list'
Lorsque je tente faire appel à function_5 et ajouter quelque chose à func5_list, je reçois cette erreur:
TypeError: can't multiply sequence by non-int of type 'float'
Je sais que ce doit être un problème avec la façon dont je générer les listes - j'ai essayé itérer les valeurs d'un de func5_list d func7_list appelle mes fonctions précédentes, mais ça ne marche pas non plus. Des suggestions sur comment appeler la fonction pour chaque valeur de var [1 ,:] ou var [2 ,:] et retourner une liste de sorties? Je vous remercie!
éditer: a résolu le problème. C'était avec l'appel d'une variable qui était déjà utilisée.
var est une liste, non? – gautamaggarwal
Il s'agit d'une liste avec des sorties matricielles. –