Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:Python中的矩阵乘法未对齐_Python_Matrix_Matrix Multiplication_Cvxpy - Fatal编程技术网

错误:Python中的矩阵乘法未对齐

错误:Python中的矩阵乘法未对齐,python,matrix,matrix-multiplication,cvxpy,Python,Matrix,Matrix Multiplication,Cvxpy,我想使用cvxpy在python中执行以下最小二乘最小化问题: import numpy as np import cvxpy as cp # Generate the data m = 20 n = 15 A = np.random.randn(m, n+2) b = np.random.randn(m) # Define and solve the CVXPY problem. x1 = cp.Variable(1) # a single variable x2 = cp.Variabl

我想使用
cvxpy
在python中执行以下最小二乘最小化问题:

import numpy as np
import cvxpy as cp

# Generate the data
m = 20
n = 15
A = np.random.randn(m, n+2)
b = np.random.randn(m)

# Define and solve the CVXPY problem.
x1 = cp.Variable(1) # a single variable
x2 = cp.Variable(1) # a single variable
x3 = cp.Variable(n) # a vector of length n

cost_func = cp.sum_squares(A .dot([x1, x2, x3]) - b)
problem = cp.Problem(cp.Minimize(cost_func))
problem.solve()
我总是得到错误“形状(20,17)和(3,)未对齐:17(尺寸1)!=3(尺寸0)”。这意味着<代码> CVX 不考虑<代码> [X1,X2,X3] 作为<代码> n+2向量< /代码>,但是<代码> 3向量< /代码>

我试图用
@
替换
.dot
,但也没用。如何在上面的平方和内进行矩阵乘法


任何帮助都将不胜感激

如评论所示:

cost_func = cp.sum_squares(A .dot([x1, x2, x3]) - b)
->
cost_func = cp.sum_squares(A @ cp.hstack([x1, x2, x3]) - b)

请参见

使用vstack、hstack或类似的方法连接变量。@MichalAdamaszek谢谢。我试过了,但没用。如果你有任何直觉,请给我一个关于如何解决这个问题的详细答案。