简体   繁体   English

在sympy中按符号索引矩阵

[英]Index a matrix by symbol in sympy

I try to index a matrix in a summation like this 我尝试像这样的总和索引矩阵

from sympy import *
vx1,vx2,vx3,vx4,vx5, vy1,vy2,vy3,vy4,vy5,  = symbols('vx1 vx2 vx3 vx4 vx5 vy1 vy2 vy3 vy4 vy5')
vx=Matrix([vx1,vx2,vx3,vx4,vx5])
vy=Matrix([vy1,vy2,vy3,vy4,vy5])
p, n = symbols('p n', integer=True)
vx[0]
vx[1]
vx[2]
vx[3]
summation(p, (p, 0, 4))
summation(vx[p], (p, 0, 4)) 

But it seems like sympy cannot do this: 但是似乎sympy无法做到这一点:

NameError: IndexError: Invalid index a[p]

Is there a way? 有办法吗?

If you want a symbolic index into a Matrix, use MatrixSymbol: 如果要在矩阵中使用符号索引,请使用MatrixSymbol:

In [15]: vx = MatrixSymbol('vx', 1, 4)

In [16]: summation(vx[(0, p)], (p, 0, 4)).doit()
Out[16]: vx₀₀ + vx₀₁ + vx₀₂ + vx₀₃ + vx₀₄

How about the following? 接下来呢?

>>> sum(vx[p] for p in range(5))
vx1 + vx2 + vx3 + vx4 + vx5

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM