2024-09-28 22:23:12 发布
网友
我有一个如下的数组:
poles = numpy.array([[-1+1j], [-1-1j], [-2+3j], [-2-3j]])
它的形状是(4,1)。你知道吗
当我使用数字诊断如下所示:
LA = numpy.diag(poles)
输出是[-1.+1.j],而我希望看到一个对角矩阵。 有人能解释一下发生了什么,应该怎么做才能看到对角矩阵吗? 我也试图改变形状为(1,4),但结果没有改变。你知道吗
[-1.+1.j]
您要查找的函数是np.fill_diagonal。这将设置数组的对角线值。您必须首先创建数组:
np.fill_diagonal
arr = np.zeros((4, 4), dtype=np.complex64)) np.fill_diagonal(arr, poles)
arr现在是:
arr
array([[-1.+1.j, 0.+0.j, 0.+0.j, 0.+0.j], [ 0.+0.j, -1.-1.j, 0.+0.j, 0.+0.j], [ 0.+0.j, 0.+0.j, -2.+3.j, 0.+0.j], [ 0.+0.j, 0.+0.j, 0.+0.j, -2.-3.j]], dtype=complex64)
np.diagonal,另一方面,检索对角线中的值。np.diagonal(arr)的输出是:
np.diagonal
np.diagonal(arr)
array([-1.+1.j, -1.-1.j, -2.+3.j, -2.-3.j], dtype=complex64)
在您的示例中,您正在检索poles的对角线,该对角线中只有一个值,因为其中一个轴的长度仅为1。你知道吗
poles
您要查找的函数是
np.fill_diagonal
。这将设置数组的对角线值。您必须首先创建数组:arr
现在是:np.diagonal
,另一方面,检索对角线中的值。np.diagonal(arr)
的输出是:在您的示例中,您正在检索
poles
的对角线,该对角线中只有一个值,因为其中一个轴的长度仅为1。你知道吗相关问题 更多 >
编程相关推荐