A = randi([1 10],[10 5]);
y = randi([1 10],[5 5]);
b = A*y;
cvx_begin
variable z(5,5)
minimize sum(norms(z,2.5,2))
error:
Error using reshape
To RESHAPE the number of elements must not change.
Error in cvx/cat (line 102)
yb = reshape( yb, nz, psz );
Error in cvx/norms (line 89)
{ cat( 3, z, y( ones(nx,1), : ) ), cvx_accept_convex(x) } …
Error in minimize (line 14)
x = evalin( ‘caller’, sprintf( '%s ', varargin{:} ) );
Please suggest the error and the way to correct it.
I believe that when called with a matrix argument, norms
only allows the 2nd argument to be 1, 2, or inf, although that doesn’t seem to be documented. Hence the rather cryptic error message,
However, I believe you can accomplish what you want with this brute force approach.
Obj = 0;
for i = 1:5
Obj = Obj + norm(z(i,:),2.5);
end
minimize(Obj)
Obviously this program as written doesn’t make sense as the final program, because optimal z will always be all zeros. I presume you will want to bring b into the objective. I will let you figure out in what manner and with appropriate dimensions for everything.
Thankyou Mark. I was in a trouble there.