Block sparse cvx

(Sara Fardi) #1

How can i solve using CVX, for solving these form of problem;

min(norm(s,1)) ,s is block sparse , and There are two blocks N Dimension. Each block is K spars.
s is (K*N) *1 , Y is (2M)1 ,A is (2M)(KN) , N is (2M)*1.
st : norm(Y-As,2)< epsilon

The position sparse is the same in each block.

(Mark L. Stone) #2

If s were a MATLAB variable, rather than a CVX variable, do you know a series of MATLAB commands which will construct s and properly populate it? If so, you might be well on your way to figuring out how to do it in CVX.

(Sara Fardi) #3

Is this code correct?

    cvx_begin quiet
    variables s(K*N)
    minimize norm(s,1)
    norm(Y-A*s,2) <=epsilon

    for k = 1:K
        [vall(k), indexx(k)] = max(s((k-1)*N+1:k*N));

please help me for Correction code.

K= 2 , M=10 ,N=90.

(Mark L. Stone) #4

You’ve done nothing to impose (force) your sparsity structure on s. So the optimal s returned by CVX might not have any zeros.