【发布时间】:2018-07-12 23:13:59
【问题描述】:
我正在尝试计算具有以下等式的矩阵 B:
B = A^2。
假设A是一个矩阵:
array([[1, 2], [3, 4]])
当我在 Matlab (A^-0.5) 中取这个矩阵的负半幂时。我得到以下结果:
ans =
0.1031 - 1.2474i 0.1502 + 0.5706i
0.2253 + 0.8559i 0.3284 - 0.3915i
但是,在 Python 中使用代码 (A**-0.5) 我得到不同的结果
array([[ 1. , 0.70710678],
[ 0.57735027, 0.5 ]]).
我的问题是如何使用 Python 来复制 Matlab 输出。我尝试过 numpy 函数 numpy.linalg.matrix_power(M, n),但这失败了,因为它只将整数作为第二个参数,而我需要一个浮点数。谢谢!!!
【问题讨论】:
-
注意
numpy矩阵上的标准操作是 MatLab 中的“元素明智”(.*、.^等)运算符可能很重要。对于矩阵运算,您使用@进行矩阵乘法并需要scipy.linalg.fractional_matrix_power进行矩阵求幂。
标签: python arrays numpy matrix scipy