我有一个可以使用参数定义的矩阵,所以这就像参数'a'我可以将我的Matrix标记为A(a),其中条目依赖于此'a',事情是我想用这个'a'的域创建一组这个矩阵。所以我的问题是,如何定义'a'的集合以获得矩阵集?
答案 0 :(得分:0)
您可以使用fromfunction
库的numpy
方法。然后使用(nxn)方阵,它就像
import numpy as np
def your_function(row_index, col_index, a):
# ... do stuff and compute your result
return result
n = 2
a = np.pi
your_matrix = np.fromfunction(lambda i, j: your_function(i, j, a), (n, n), dtype=np.float)
如果你希望它是callable形式,实际上就像你问的那样,你可以做到
A = lambda a : np.fromfunction(lambda i, j: your_function(i, j, a), (n, n), dtype=np.float)
或者如果您不想使用anonymous function
def A(a):
return np.fromfunction(lambda i, j: your_function(i, j, a), (n, n), dtype=np.float)
<小时/> 让我们举一个简单的例子
def your_function(row_index, col_index, a):
return row_index + col_index + a
n = 2
A = lambda a : np.fromfunction(lambda i, j: your_function(i, j, a), (n, n), dtype=np.float)
用例
>>> A(1)
array([[ 1., 2.],
[ 2., 3.]])
>>> A(np.pi)
array([[ 3.1415926535897931, 4.1415926535897931],
[ 4.1415926535897931, 5.1415926535897931]])