问题描述
我有 2 个复杂矩阵,每个矩阵的形状为 (2,4,3)。我想在没有 for 循环的情况下实现以下代码:
ce2 = np.random.rand(2,3)+np.random.rand(2,3)*1j
ce1 = np.random.rand(2,3)*1j
numberofch,*dimxyz,drei = ce1.shape
sarmatrixar = np.zeros((*dimxyz,numberofch,numberofch),dtype=np.complex_)
for nport in range(2):
for mport in range(2):
sarmatrixar[...,nport,mport] = np.einsum("...k,...k->...",np.conj(ce1[nport]),ce2[mport])
我试过了
sarmatrixV = np.einsum("...k,np.conj(ce1),ce2)
但只得到一个 (2,4) 矩阵而不是一个 (4,2,2),我理解这是因为我只对最后一个轴求和。但我不知道如何实现 for 循环。我想过 np.dot 或 np.tensordot,但没有找到正确的解决方案。
非常感谢您的帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)