将列表中的元素相乘

2024-10-05 15:26:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个元素列表:

table = [ [[0.,0.,1.],[0.,0.,-1.],[0.,0.,0.],[0.,0.,0.]],
          [srB(0, 0),srA(0, 0),[0.,0.,0.],[0.,0.,0.]],
          [spB(Beta, Alpha, PHI), spC(PHI), spA( Alpha, PHI), [0.,0.,0.]],
          [[0.,0.,0.], [0.,0.,0.], srA(0, 0), srB(0, 0)],
          [spB(Beta,Alpha,PHI), spC(PHI), [0.,0.,0.], [0.,0.,0.]],
          [stB(Beta,Alpha,PHI), stC(Beta,Alpha), stA(Beta, PHI), stD(Alpha)]

它对应于以下形状的表格:

    A    B    C    D
    ------------------
rco|     
rnc|
Alp|
rnn|
Bet|
T  |

我想获得一个表的类型:

    rco rnc Alp rnn Bet rnn Bet T
     -----------------------------
rco |
rnc |
Alp |      SOME RESULTS
rnn |
Bet |
T   |

它来自于桌子两边元素的点积。我是说

  1. 对于每个元素rco用每个元素rco创建点积,并将它们相加
  2. 对于每个元素rco用每个元素rnc创建点积,并将它们相加
  3. 对于每个元素rco用每个元素Alp创建点积,并将它们相加 等等

我尝试了以下多重复制:

 S = np.zeros((6,6))
    for i in range(len(stable)):
            for j in range(4):
                    for k in range(len(stable)):
                            for l in range(4):
                                  S[i][k] += np.dot(stable[i][j], stable[k][l])

更新: 看来我解决了这个问题。但是我想知道怎样才能简化乘法。我只需要得到一个上三角矩阵。 我很乐意得到一个提示。你知道吗


Tags: inalpha元素forrangebetastablephi