I have a matrix M in MATLAB, containing m x n numbers. I want to add very small noises to repeated rows to make it unique, i.e., size(M,1) = size(unique(M,'rows'),1).
EDIT:
I have tried this. But it is not deterministic.
while size(unique(allDataUnnormalized,'rows'),1)~=size(allDataUnnormalized,1)
[~, tmpDist] = knnsearch (allDataUnnormalized,allDataUnnormalized,'k',2);
importantIdx = find(tmpDist(:,2)==0);
allDataUnnormalized(importantIdx,:)=allDataUnnormalized(importantIdx,:)+rand(numel(importantIdx),NDims)*epsilon^4;
end
Adding noise is cheap, why wont you just try something like: