wolffd@0: function W = feasibleFullMKL(W) wolffd@0: % wolffd@0: % W = feasibleFullMKL(W) wolffd@0: % wolffd@0: % Projects a single d*d matrix onto the PSD cone wolffd@0: % wolffd@0: global FEASIBLE_COUNT; wolffd@0: m = size(W,3); wolffd@0: FEASIBLE_COUNT = FEASIBLE_COUNT + m; wolffd@0: wolffd@0: parfor i = 1:m wolffd@0: [v,d] = eig(0.5 * (W(:,:,i) + W(:,:,i)')); wolffd@0: W(:,:,i) = v * bsxfun(@times, max(real(diag(d)),0), v'); wolffd@0: end wolffd@0: end wolffd@0: