您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python中的多维符号矩阵

5b51 2022/1/14 8:22:04 python 字数 2639 阅读 535 来源 www.jb51.cc/python

我想通过计算每个索引组合的值来创建特定大小的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 = n

概述

我想通过计算每个索引组合的值来创建特定大小的3D矩阵.矩阵中的每个值都是符号的.

我到现在为止做了些什么:

import numpy as np
import sympy as sp

var1 = np.arange(1,10,2)
var2 = np.arange(1,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: can’t convert expression to float

据我所知,这是由于结合了numpy和sympy.因此,我试过:

myMatrix = sp.MatrixSymbol('temp',len(var1),len(var3))

代替:

myMatrix = np.zeros(shape = (len(var1),len(var3)))

并得到一个错误

TypeError: new() takes exactly 4 arguments (5 given)

总而言之,我的问题是:如何创建一个包含内部任何变量??的3D矩阵,以便能够在嵌套循环中使用它,这涉及符号计算?

(这是我在这个社区的第一篇文章,所以如果我做错了,请告诉我.)

import numpy as np
import sympy as sp

var1 = np.arange(1,5)

myMatrix = np.empty((len(var1),len(var3)),dtype=object)
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

虽然对于大尺寸,这不是太有效,而不是numpy应该工作的方式.对于sympy数组,这可能是唯一的方法,但似乎至少在我的sympy版本(0.7.1.rc1)中,不支持3D数组.对于

myMatrix = sp.zeros((len(var1),len(var3)))

我收到以下错误

ValueError: Matrix dimensions should be a two-element tuple of ints or a single int!

总结

以上是编程之家为你收集整理的Python中的多维符号矩阵全部内容,希望文章能够帮你解决Python中的多维符号矩阵所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶