我正在尝试将Matlab代码转换为Python代码。在
我被困在
x = A\b;
其中A
是2D数组(2257x456)
,其中{
Matlab中输出的数组x
是1D数组(456x1)
在Matlab代码中也有一个注释,它说:%Solve the system using SVD
那么,如何用Python实现这一点呢?在
我尝试使用以下代码,但没有成功。在
^{pr2}$更新:
产生的错误和结果:
x = np.linalg.solve(A,b) : LinAlgError: Last 2 dimensions of the array must be square
x = np.linalg.lstsq(A,b) : x is not expected result, it is 3D array (4x456x1)
x = np.linalg.lstsq(A.T, b.T)[1].T : LinAlgError: Incompatible dimensions
你想要
np.linalg.lstsq(A,b)
。再看一下docstring,注意它返回四个值。所以为了使用它,你应该写或者,如果您想忽略除
^{pr2}$x
之外的所有内容相关问题 更多 >
编程相关推荐