我在这里写了一个2D融合套索代码。
[m n] = size(circle);
cvx_begin
variable theta(m, n);
minimize( norm(circle-theta, 'fro'));
subject to
sum(sum(abs(theta(:,1:n-1)-theta(:,2:n)))) == 0;
sum(sum(abs(theta(1:m-1,:)-theta(2:m,:)))) == 0;
cvx_end
奇怪的是,该计划报告,
在cvxprob中(第28行)在cvx_begin中(第41行)使用cvxprob / newcnstr时出错(第192行)有纪律的凸编程错误:
无效约束:{convex} == {constant}错误==(第12行)b = newcnstr(evalin('来电者',' cvx_problem', ' []' ),x,y,' ==' );
删除约束中的abs()
后,程序可以运行,但这不是我期望的限制。
答案 0 :(得分:0)
我认为您可以尝试将矩阵堆叠到向量中,然后使用L1范数。在CVX中,它只是norm(variable,1)。它将与您在此处所做的相同:绝对基本明智之和。