objective function is:
minimiz sigma(C§*pii§) +lamda||pii||2
subject to pii>=0 sigma(pii§)=1
my code is below:
clc
clear
viewNum = 3;
lamda =1e3;
pii(1,1:viewNum) = 1/viewNum*ones(1,viewNum);
disp('pii ' );
pii
size_pii = size(pii)
c(1,1)=2.17026938864275e-06;
c(1,2)= 1.78603303286262e-06;
c(1,3)=2.13626884759385e-06;
disp('c ');
c
size_c = size(c)
cpii = c*pii'
n = viewNum;
cvx_begin
variable pii(n)
minimize(lamda*norm( pii, 2 ) )
subject to
pii >= 0
sum(pii) ==1
cvx_end
run matlab,show errors:Error using cvx/mtimes (line 41) Inner matrix dimensions must agree.
It is strange,becuase cpii = cpii’ is a right statment(c is 1 *3, pii is 1 3 ,so cpii’=11,no proble),but in cvx,the sentence has error,why?