我希望在 Python 中定义的函数中找到矩阵的踪迹(使用 Numpy)。输入参数tensor和tensor_transpose都是大小为 (N,2,2) 的矩阵,并且是从 VTK 文件中提取的(N 是一个相当大的数字,并且因文件而异)。所以A和B都是 (N,2,2) 的数组。通过获取每个数组的轨迹(对角项的总和),应该返回每个数组的单个值。所以np.trace(A)**3)-(np.trace(B)**3应该是一个单一的数值,数组的形状为 (N,1)。我的输出虽然没有显示这一点,但返回的形状是(2,).
谁能解释为什么?这是trace功能的问题吗?有解决方案吗?
import numpy as np
A=np.array(0.5*(tensor-tensor_transpose))
B=np.array(0.5*(tensor+tensor_transpose))
C=np.array(0.5*((np.trace(A)**3)-(np.trace(B)**3)))
print(A.shape)
print(B.shape)
print(C.shape)
#Output
#(60600, 2, 2)
#(60600, 2, 2)
#(2,)
有只小跳蛙
相关分类