我如何用随机整数替换矩阵中的每个条目?

  • 本文关键字:何用随 整数 替换 sympy
  • 更新时间 :
  • 英文 :


我想生成一个n x m矩阵,其中每个条目是不同的数字。这个程序的目的是生成矩阵,这样我就可以练习通过高斯消去将这些矩阵化简成行简化阶梯形的技术。

from sympy import MatrixSymbol,Eq
import random
k=0
def random_value(k):
return random.choice([k for k in range(-4,4) if k not in [0]])
rowlength = abs(random_value(k))
columnlength = abs(random_value(k))
C = MatrixSymbol('C',rowlength ,columnlength)
display(Eq(C,C.as_explicit()))
for i in range(0,rowlength):
for j in range(0,columnlength):
p = C.as_explicit().row(i).col(j)
display(p[0])
display(Eq(C,C.as_explicit()))
#display(C.rref()[0])

我尝试了p[0] == random_value(k),它给了我错误:

TypeError: Cannot set values of <class 'sympy.matrices.immutable.ImmutableDenseMatrix'>

我假设问题是我生成的矩阵是不可变的。

我查看了类似的post SymPy -在矩阵中替换符号条目,但没有看到可行的解决方案。

SymPy具有randMatrix功能:

In [16]: randMatrix(3, 4)
Out[16]: 
⎡78  25  63  64⎤
⎢              ⎥
⎢83  72  43  91⎥
⎢              ⎥
⎣82  81  71  66⎦

https://docs.sympy.org/latest/modules/matrices/matrices.html sympy.matrices.dense.randMatrix

最新更新