wolffd@0: function r = regularizeMKLDOD(W, X, gradient) wolffd@0: % wolffd@0: % r = regularizeMKLDOD(W, X, gradient) wolffd@0: % wolffd@0: % wolffd@0: wolffd@0: [d,n,m] = size(X); wolffd@0: wolffd@0: if gradient wolffd@0: r = zeros(m,m,d); wolffd@0: for i = 1:m wolffd@0: r(i,i,:) = diag(X(:,:,i)); wolffd@0: for j = (i+1):m wolffd@0: r(i,j,:) = diag(X(:,:,i)) + diag(X(:,:,j)); wolffd@0: end wolffd@0: end wolffd@0: else wolffd@0: r = 0; wolffd@0: for i = 1:m wolffd@0: r = r + squeeze(W(i,i,:))' * diag(X(:,:,i)); wolffd@0: for j = (i+1):m wolffd@0: r = r + squeeze(W(i,j,:))' * (diag(X(:,:,i)) + diag(X(:,:,j))); wolffd@0: end wolffd@0: end wolffd@0: end wolffd@0: end