You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整原始矩阵以适配nearPSD函数将其转换为半正定矩阵

解决方法

报错的核心原因是你定义的A是Python原生嵌套列表,不存在numpy数组/矩阵专属的shape属性,而nearPSD函数内部第一行就调用了A.shape[0]获取矩阵维度,因此触发属性错误。

调整原始矩阵A的方式非常简单:只需要将原生列表转换为numpy支持的数组或矩阵类型即可,调整后的A定义代码如下:

# 方式一:转换为numpy数组(更常用)
A = np.array([[phi_zero, phi_one],
              [1, 0]])

# 方式二:转换为numpy矩阵
A = np.matrix([[phi_zero, phi_one],
              [1, 0]])

调整后重新执行nearPSD(A=A)即可正常输出半正定矩阵结果。

如果想要避免后续传参时再出现同类问题,也可以在nearPSD函数开头增加一行自动类型转换的代码:

def nearPSD(A,epsilon=0):
   A = np.asarray(A) # 新增行,自动将输入转为numpy数组
   n = A.shape[0]
   # 剩余原有代码保持不变

内容的提问来源于stack exchange,提问作者AlSub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:39:03