【发布时间】:2016-03-14 23:07:17
【问题描述】:
sympy 文档中有这个使用规则创建矩阵的示例:
>>> def f(i,j):
if i == j:
return 1
else:
return 0
>>> Matrix(4, 4, f)
[1 0 0 0]
[ ]
[0 1 0 0]
[ ]
[0 0 1 0]
[ ]
[0 0 0 1]
我将如何使用带参数的规则?例如使用函数:
>>> def f(i,j,l=1):
if i == j:
return 1*l
else:
return 0
我不知道怎么调用这样的函数。
编辑:澄清一下,我不是在寻找解决这个特定示例的解决方案 - 我在寻找更通用的解决方案。请假设作为矩阵创建规则的函数——即示例中的f——是任意复杂的。也就是说,它不能简单/容易地用 lambda 函数复制。所以换句话说,参数(示例中的l)必须包含在对函数(f)的调用中。可以这样做吗?
编辑 2:基本上我希望能够将 f 指定为独立函数(我的意思不是 lambda 函数),然后将其作为 Matrix 构造的一部分并带有任何附加参数(除了前 2 个强制参数)。我尝试使用如下代码调用示例函数:
>>> Matrix(4,4,f,l=7)
期待它会回来:
[7 0 0 0]
[ ]
[0 7 0 0]
[ ]
[0 0 7 0]
[ ]
[0 0 0 7]
但这不起作用。
>>> Matrix(4,4,f,{l=7})
也不行。可以这样做吗?
【问题讨论】:
标签: python matrix constructor sympy callable