[/size][/backcolor][/color]
function h = matrix_decomp
MAX_ITER = 100;
ABSTOL = 1e-4;
RELTOL = 1e-2;
tic;
lambda = 1;
rho = 1/lambda;
X_1 = zeros(m,n);
X_2 = zeros(m,n);
X_3 = zeros(m,n);
z = zeros(m,N*n);
U = zeros(m,n);
fprintf('\n%3s\t%10s\t%10s\t%10s\t%10s\t%10s\n', 'iter', ...
'r norm', 'eps pri', 's norm', 'eps dual', 'objective');
for k = 1:MAX_ITER
B = avg(X_1, X_2, X_3) - A./N + U;
% x-update
X_1 = (1/(1+lambda))*(X_1 - B);
X_2 = prox_l1(X_2 - B, lambda*g2);
X_3 = prox_matrix(X_3 - B, lambda*g3, @prox_l1);
% (for termination checks only)
x = [X_1 X_2 X_3];
zold = z;
z = x + rep