“TypeError:_new_()至少需要2个参数(给定1个)”

时间:2013-07-28 17:12:58

标签: python

我尝试创建程序生成线性编程问题,如

min cx
s.t. Ax=b
x>=0

但它会出现程序警告消息的问题

"File"/tmp/tmpgX7_hI/___code___.py", line 3, in <module> class LP:"
"File"/tmp/tmpgX7_hI/___code___.py", line 4, in LP c=matrix()"
"TypeError: _new_() take at least 2 arguments (1 given)"

这是我的错误,我该如何解决? 请!

Program
    class LP:
        c=matrix()
        A=matrix()
        b=matrix()
        def__init__(self,cvector,Amatrix,bvector):
            self.c=cvector
            self.A=Amatrix
            self.b=bvector
#----------------------------------------------------------------------
    import random 
    colc=[]colAmatrix=[]
    colb=[]
    LP_GEN=[]
    for m in range(2,5):
        for n in range(2,5):
            for k in range(2):
                c=matrix(1,n)
                for i in range(n):
                c[0,i]=random.randint(-50,50)
                b[0,i]=random.randint(-50,50)
                A[0,i]=random.randint(-50,50)
LP_GEN.append(LP(c,A,b))

2 个答案:

答案 0 :(得分:1)

问题是如何创建matrix类的实例。 你这样做了:

c=matrix()

但它应该是这样的:

c=matrix(ARGUMENTS_HERE)

取决于创建matrix所需的参数。

答案 1 :(得分:1)

在您的班级定义中,您使用matrix()。但是你必须至少传递一个数据。我想你可能想要:

class LP:
    def__init__(self,cvector,Amatrix,bvector):
        self.c=matrix(cvector)
        self.A=matrix(Amatrix)
        self.b=matrix(bvector)

cvectorAmatrixbvector应该是数组或字符串。顺便说一下,matrix(1, n)也会导致错误。