随机矩阵:int()参数必须是字符串或数字,而不是'元组'

时间:2018-01-04 11:30:54

标签: python int tuples

我正在尝试生成一个矩阵,其中包含mxn并包含随机数。我已经生成了以下代码,但我对收到的错误感到困惑。这是我正在使用的代码:

class MP:
def __init__(self,
          mSize, nSize
             ):
    self.mSize=mSize,
    self.nSize=nSize

def RMatrix(param):
  assert isinstance(param, MP)
  m = int(param.mSize)
  n = int(param.nSize)
  A=np.random.rand(m,n)
  return (np.matrix(A))

我收到错误:int()参数必须是字符串或数字,而不是'tuple'。为什么值作为元组传递?这里发生了什么,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

知道了。你的init中有一个逗号(在self.mSize = mSize **,**)。删除它,你的代码将正常工作。

import numpy as np
class MP:
    def __init__(self,
              mSize, nSize
                 ):
        self.mSize=mSize
        self.nSize=nSize

    def RMatrix(param):
      assert isinstance(param, MP)
      m = int(param.mSize)
      n = int(param.nSize)
      A=np.random.rand(m,n)
      return (np.matrix(A))

x=MP(3,3)
print x.RMatrix()

输出:

[[ 0.88170563  0.56061723  0.71311863]
 [ 0.3550273   0.83179011  0.10337231]
 [ 0.43324567  0.52177816  0.04648175]]