Hi,

I would like to compute L1 norm of matrix M in CVX.

I know that, I can use sum(sum(abs(M))), but does anybody knows better approach?

Hi,

I would like to compute L1 norm of matrix M in CVX.

I know that, I can use sum(sum(abs(M))), but does anybody knows better approach?

`norm(M,1)`

You should read the CVX User Guide.

Per http://cvxr.com/cvx/doc/funcref.html#built-in-functions

norm

norms for real and complex vectors and matrices. Convex. Thus function follows the Matlab conventions closely. Thus the one-argument version norm(x) computes the 2-norm for vectors, and the 2-norm (maximum singular value) for matrices. The two-argument version norm(x,p) is supported as follows:

- ‡ For vectors, all values p≥1 are accepted.
- For matrices, p must be 1, 2, Inf, or ‘Fro’.

Is sum(sum(abs(M))) a new definition of L1 norm of a matrix? Is L1 norm of a matrix something different than the 1-norm of a matrix? My previous answer addresses the 1-norm. It does not address sum(sum(abs(M))).

Well, it depends on what is your definition from L1 norm of matrix.

Generally there is two different defination:

first: ||A||\_1=\sum_{i,j} ja_{ij} | which can introduce lot’s of sparsity on the problem

Second, is the induced norm definition. norm(M,1) compute induced norm for matrices.

Mark, I agree with you that the induced one-norm, as defined by `norm(X,1)`

, is the proper and standard way to define \|X\|_1 for matrices.

However, I’m afraid that some people do indeed use \|X\|\_1 to represent the `sum(sum(X))`

norm. This is often in papers involving low-rank approximations, sparse RPCA. I personally have used \|X\|\_{\ell_1} in these situations instead, and taken pains to define exactly what that means.