Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按函数共同定义矩阵:TypeError_Python_Typeerror_Sympy - Fatal编程技术网

Python 按函数共同定义矩阵:TypeError

Python 按函数共同定义矩阵:TypeError,python,typeerror,sympy,Python,Typeerror,Sympy,我能够使用函数定义sympy矩阵。对于一个特定的函数,我得到一个TypeError 共矩阵(4,4,λi,j:-1^(i-j)) 或 defc(i,j): 返回-1^(i-j) 共矩阵(4,4,c) 错误是: --------------------------------------------------------------------------- TypeError Traceback (most recent c

我能够使用函数定义
sympy
矩阵。对于一个特定的函数,我得到一个
TypeError

共矩阵(4,4,λi,j:-1^(i-j)) 或

defc(i,j):
返回-1^(i-j)
共矩阵(4,4,c)
错误是:


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-28-f922eb663788> in <module>
      2     return -1^(i-j)
      3 # sympy.Matrix(4, 4, c)
----> 4 sympy.Matrix(4, 4, lambda i,j: -1^(i-j) )

~/.local/lib/python3.8/site-packages/sympy/matrices/dense.py in __new__(cls, *args, **kwargs)
    297 
    298     def __new__(cls, *args, **kwargs):
--> 299         return cls._new(*args, **kwargs)
    300 
    301     @classmethod

~/.local/lib/python3.8/site-packages/sympy/matrices/dense.py in _new(cls, copy, *args, **kwargs)
    308             rows, cols, flat_list = args
    309         else:
--> 310             rows, cols, flat_list = cls._handle_creation_inputs(*args, **kwargs)
    311             flat_list = list(flat_list) # create a shallow copy
    312         self = object.__new__(cls)

~/.local/lib/python3.8/site-packages/sympy/matrices/matrices.py in _handle_creation_inputs(cls, *args, **kwargs)
   1100                 for i in range(rows):
   1101                     flat_list.extend(
-> 1102                         [cls._sympify(op(cls._sympify(i), cls._sympify(j)))
   1103                          for j in range(cols)])
   1104 

~/.local/lib/python3.8/site-packages/sympy/matrices/matrices.py in <listcomp>(.0)
   1100                 for i in range(rows):
   1101                     flat_list.extend(
-> 1102                         [cls._sympify(op(cls._sympify(i), cls._sympify(j)))
   1103                          for j in range(cols)])
   1104 

<ipython-input-28-f922eb663788> in <lambda>(i, j)
      2     return -1^(i-j)
      3 # sympy.Matrix(4, 4, c)
----> 4 sympy.Matrix(4, 4, lambda i,j: -1^(i-j) )

TypeError: unsupported operand type(s) for ^: 'int' and 'Zero'

---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
2返回-1^(i-j)
3#辛矩阵(4,4,c)
---->4辛矩阵(4,4,λi,j:-1^(i-j))
~/.local/lib/python3.8/site-packages/sympy/matrices/dense.py in uuuuu new_uuuu(cls,*args,**kwargs)
297
298定义新定义(cls、*ARG、**kwargs):
-->299返回cls.\u新(*args,**kwargs)
300
301@classmethod
~/.local/lib/python3.8/site-packages/sympy/matrix/dense.py in_new(cls,copy,*args,**kwargs)
308行,列,平面列表=args
309其他:
-->310行,列,平面列表=cls。\句柄\创建\输入(*args,**kwargs)
311平面列表=列表(平面列表)#创建一个浅层副本
312 self=object.\uuuuu new\uuuu(cls)
~/.local/lib/python3.8/site-packages/sympy/matrices/matrices.py在_handle\u creation\u输入中(cls、*args、**kwargs)
范围内的i为1100(行):
1101平面列表。扩展(
->1102[cls.\U sympify(op(cls.\U sympify(i),cls.\U sympify(j)))
1103适用于范围内的j(cols)])
1104
~/.local/lib/python3.8/site-packages/sympy/matrices/matrices.py in(.0)
范围内的i为1100(行):
1101平面列表。扩展(
->1102[cls.\U sympify(op(cls.\U sympify(i),cls.\U sympify(j)))
1103适用于范围内的j(cols)])
1104
in(i,j)
2返回-1^(i-j)
3#辛矩阵(4,4,c)
---->4辛矩阵(4,4,λi,j:-1^(i-j))
TypeError:不支持^:'int'和'Zero'的操作数类型
从错误日志来看,
i-j
的计算结果似乎是
int
Zero
(可能是在
i==j
时)


如何校正函数以确保始终将
I-j
计算为
int

使用
int
强制执行
I-j
的结果可以解决以下问题:

共矩阵(4,4,λi,j:-1^int(i-j)) 或

defc(i,j):
返回-1^int(i-j)
共矩阵(4,4,c)
结果是: