用元素求多个等尺寸矩阵的和

2024-05-16 01:01:00 发布

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

我有一个问题,我已经打开并解释了HERE。简而言之,我需要用值替换分析矩阵中的符号,并将它们相加。为了更好的解释,我做了以下图片: enter image description here 当然会有更多更大尺寸的矩阵。你知道吗

不过,我决定用另一种方法来解决这个问题,首先将矩阵的所有不同变体保存在一个更大的数组中,然后将它们相加。这是我目前的代码:

from sympy import*
import numpy as np
init_printing()

T, logS = symbols('T, logS')
sig_izris = [[300,320,310],[410,435,440],[505, 515, 520]]
temperatura = [[500],[550],[600]]
Nap = np.asarray(np.log10(sig_izris))
Temp = []
for i in range(len(temperatura)):
    Temp.append(temperatura[i][0]+273.15) #Conversion to  Kelvin

def double_sum(mat, temp, nap):
    mat_12 = mat.subs(T, temp)
    mat_12 = mat_12.subs(logS, nap)
    return np.asarray(mat_12) 


test = Matrix([[logS, T, -1],[1, T**2, logS**2],[logS**3, T**2, 1]])
matrika = test
A = []
for i in range(len(Temp)):
    for j in range(len(Nap[i])):
        A.append(double_sum(matrika, Temp[i], Nap[i][j]))
mat_sum = sum(A)
mat_sum

但我并不完全相信我的代码是100%正确的,或者这个过程是否可以优化。 我想知道几个数组按元素求和的正确方法是什么。我试过使用操作符模块中的add,甚至zip,但就是没能写出正确的代码。你知道吗


Tags: 方法代码inforlennprange矩阵
1条回答
网友
1楼 · 发布于 2024-05-16 01:01:00

要添加几个大小与手写公式显示的元素相同的NumPy数组,只需编写

M = M1 + M2 + M3

辛矩阵的加法也是类似的。您可以将两者混合搭配:

import sympy
from sympy.abc import x
import numpy

A = sympy.Matrix([[x,0],[0,x]])
B = numpy.eye(2)
print A + B # Prints "Matrix([[x + 1.0, 0], [0, x + 1.0]])"

是的。你知道吗

相关问题 更多 >