【发布时间】:2020-04-30 20:29:58
【问题描述】:
我有一个矩阵A,维度为(T,k)。我想为正整数m 和t1, t2 < T 构造以下块矩阵:
这里,Im 是维度为m 的单位矩阵,A[t,i]Im 是一个对角矩阵,所有对角元素都等于A[t,i]。有没有一种有效的方法来写这个,也许没有任何循环?这是我当前的代码(设置t2 = t, t1 = 0),但效率很低
B = np.zeros([k*m,t*m])
for i in range(filter_count):
for j in range(t):
B[i*m:(i+1)*m,j*m:(j+1)*m] = np.diag(np.repeat([A[t-j,i]],m))
【问题讨论】:
-
试用
fliplr(A)和I_m的kronecker 产品查看numpy.kron上的帮助
标签: python performance matrix vectorization