【发布时间】:2016-02-28 11:27:50
【问题描述】:
我想通过计算每个索引组合的值来创建一个特定大小的 3D 矩阵。矩阵中的每个值都是符号。
到目前为止我尝试了什么:
import numpy as np
import sympy as sp
var1 = np.arange(1,10,2)
var2 = np.arange(1,10,2)
var3 = np.arange(20,50,5)
myMatrix = np.zeros(shape = (len(var1), len(var2), len(var3)))
t = sp.symbols('t')
for ii in range(len(var1)):
for jj in range(len(var2)):
for kk in range(len(var3)):
myMatrix[ii][jj][kk] = var1[ii] * var2[jj] * var3[kk] * t
这给了我错误:
TypeError: 无法将表达式转换为浮点数
据我所知,这是由于结合了 numpy 和 sympy。因此,我尝试了:
myMatrix = sp.MatrixSymbol('temp', len(var1), len(var2), len(var3))
代替:
myMatrix = np.zeros(shape = (len(var1), len(var2), len(var3)))
得到一个错误:
TypeError: new() 只需要 4 个参数(给定 5 个)
总而言之,我的问题是:如何创建一个包含任何变量的 3D 矩阵,以便能够在嵌套循环中使用它,这涉及到符号计算?
(这是我在这个社区的第一篇文章,所以如果我做错了什么,请告诉我。)
【问题讨论】: