wolffd@0: function W = dualWDiagMKL(alpha, Z, U, RHO, K) wolffd@0: wolffd@0: global PsiR; wolffd@0: d = size(K, 1); wolffd@0: m = length(alpha); wolffd@0: wolffd@0: nKernels = size(K,3); wolffd@0: wolffd@0: W = Z - U; wolffd@0: for p = 1:nKernels wolffd@0: W(:,p) = W(:,p) - diag(K(:,:,p)) / RHO; wolffd@0: end wolffd@0: wolffd@0: for i = 1:m wolffd@0: W = W + alpha(i) * PsiR{i} / RHO; wolffd@0: end wolffd@0: wolffd@0: end