我在MATLAB中有一个矩阵M
,包含m x n
个数字。我想为重复的行添加非常小的噪音以使其唯一,即size(M,1) = size(unique(M,'rows'),1)
。
修改: 我试过这个。但这不是确定性的。
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
答案 0 :(得分:1)
添加噪音很便宜,为什么不尝试这样的事情:
allDataUnnormalized = allDataUnnormalized + eps*rand(size(allDataUnnormalized));