ivan@155: function[Phiout,unhatnz] = dict_update_KSVD_cn(Phi,x,unhat) ivan@155: %% K-SVD Dictionary Learning with the constraint on the column norms %%%%% ivan@155: ivan@155: %% ivan@155: unhatn = unhat; ivan@155: rPerm = randperm(size(Phi,2)); ivan@155: %% for l = 1:size(Phi,2), ivan@155: for l = rPerm ivan@155: unhatns = unhat; ivan@155: unhatns(l,:) = zeros(1,size(unhat,2)); ivan@155: E = x-Phi*unhatns; ivan@155: ER = E(:,(abs(unhat(l,:))>0)); ivan@155: [U,S,V] = svd(ER,0); ivan@155: Phi(:,l) = U(:,1) ivan@155: unhatn(l,:) = zeros(1,size(unhat,2)); ivan@155: unhatn(l,(abs(unhat(l,:))>0)) = S(1,1)*V(:,1); ivan@155: unhat = unhatn; ivan@155: end ivan@155: %% ivan@155: unhatnz = unhat; ivan@155: Phiout = Phi; ivan@155: end