2013-12-20 52 views
1

試圖建立一個矩陣開始搜索算法。的Python:參數 - 4個參數允許,5給出

Traceback (most recent call last): 
    File "Fusion Puzzle Algorithm 2.py", line 20, in <module> 
    A = matrix([z11,z12,z13,z14], [z21,z22,z23,z24], [z31,z32,z33,z34], [z41,z42,z43,z44]) 
TypeError: __new__() takes at most 4 arguments (5 given) 

我怎樣才能得到這個工作:

from numpy import * 

z11 = vars() 
z12 = vars() 
z13 = vars() 
z14 = vars() 
z21 = vars() 
z22 = vars() 
z23 = vars() 
z24 = vars() 
z31 = vars() 
z32 = vars() 
z33 = vars() 
z34 = vars() 
z41 = vars() 
z42 = vars() 
z43 = vars() 
z44 = vars() 

A = matrix([z11,z12,z13,z14], [z21,z22,z23,z24], [z31,z32,z33,z34], [z41,z42,z43,z44]) 

當運行錯誤,它來了?

+0

看什麼'matrix'預計其參數是:http://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.html – Blender

回答

0

我不太清楚你的使用情況是什麼,但它總是容易更換循環重複的語句。例如,你明確地寫出16個變量名稱,即使名稱並不重要。相反,直接將它們放入用for(嵌套)列表循環

variables = [] 
for row in range(4): 
    row_variables = [] 
    for col in range(4): 
     row_variables.append(vars()) 
    variables.append(row_variables) 
A = matrix(variables) 

即相當於:

variables = [[vars() for col in range(4)] for row in range(4)] 
A = matrix(variables) 

甚至:

variables = [[vars()] * 4 for row in range(4)] 
A = matrix(variables) 
7

你可能想要的東西,如:

A = matrix([[z11,z12,z13,z14], [z21,z22,z23,z24], [z31,z32,z33,z34], [z41,z42,z43,z44]]) 

需要注意的是,只有一個參數矩陣的構造。

+0

感謝和你是這樣一個noob遺憾。 – user3123787

+0

元組將工作得A =矩陣((Z11,Z12,Z13,Z14],[Z21,Z22,Z23,Z24],[Z31,Z32,Z33,Z34],[Z41,Z42,Z43,Z44] )) –

相關問題