如何用CVX解决MMV稀疏表示

时间:2014-07-22 14:07:08

标签: matlab optimization sparse-matrix cvx

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

min放松(X) 受Y = A * X

的影响

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

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

1 个答案:

答案 0 :(得分:0)

'规范'是你正在寻找的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