我有一個看起來像這樣的設置,當我嘗試在做一些矩陣數學後調用函數時遇到了一些問題。我想看看是否有這樣做更有效的方式:Python:TypeError:無法通過類型'float'的非int類型和TypeError:一元操作數類型錯誤 - :'list',最簡潔的方式來編碼?
#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,:]))
當我嘗試在function_7調用並追加的東西func7_list,我得到這個錯誤:
TypeError: bad operand type for unary -: 'list'
當我嘗試對function_5調用並追加的東西func5_list,我得到這個錯誤:
TypeError: can't multiply sequence by non-int of type 'float'
我知道它必須與我是如何生成的列表的一個問題 - 我試圖通過func5_list的值迭代d func7_list在那裏調用我早期的函數,但那也不起作用。有關如何爲var [1 ,:]或var [2,:]的每個值調用函數並返回輸出列表的任何建議?謝謝!
編輯:找出問題所在。這是在調用一個已經被使用的變量。
var是一個清單,對不對? – gautamaggarwal
這是一個帶有矩陣輸出的列表。 –