Matlab 如何用CVX求解MMV稀疏表示

Matlab 如何用CVX求解MMV稀疏表示,matlab,optimization,sparse-matrix,cvx,Matlab,Optimization,Sparse Matrix,Cvx,我想用CVX工具箱解决多测量向量(MMV)稀疏表示问题。我有一个N*L矩阵X。矩阵X只有几个非零行。方程组Y=A*X,Y是M*L测量矩阵(M 最小松弛(X) 受制于Y=A*X Realx(.)是一个将范数1应用于向量t的函数。(N*1)向量t由矩阵X的每行的范数2组成。即松弛(X)=范数_1(t)和t(i)=范数_2(X(i,:) 我无法将我的目标函数转换成CVX能够理解和解决的语言。 请告诉我如何更改CVX可以解决的问题目标和约束条件。'norms'是您正在寻找的CVX命令。假设sigma是某

我想用CVX工具箱解决多测量向量(MMV)稀疏表示问题。我有一个N*L矩阵X。矩阵X只有几个非零行。方程组Y=A*X,Y是M*L测量矩阵(M 最小松弛(X) 受制于Y=A*X

Realx(.)是一个将范数1应用于向量t的函数。(N*1)向量t由矩阵X的每行的范数2组成。即松弛(X)=范数_1(t)和t(i)=范数_2(X(i,:)

我无法将我的目标函数转换成CVX能够理解和解决的语言。
请告诉我如何更改CVX可以解决的问题目标和约束条件。

'norms'是您正在寻找的CVX命令。假设sigma是某个已知参数,允许Y仅近似等于A*X(例如,我尝试使用sigma=10e-6)。然后您可以使用以下代码:

cvx_begin separable

    variable X(n,n)
    minimize( norms(X,2,1) )
    subject to
       norm(Y - A*X,2)<= 10*sigma

cvx_end
cvx\u开始可分离
变量X(n,n)
最小化(范数(X,2,1))
从属于

norm(Y-A*X,2)谢谢你,劳拉,但似乎“norms”命令只适用于平方矩阵。我的未知矩阵是M*L