0

M在 MATLAB 中有一个包含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
4

1 回答 1

1

添加噪音很便宜,为什么不尝试以下方法:

 allDataUnnormalized = allDataUnnormalized + eps*rand(size(allDataUnnormalized));
于 2012-12-03T07:14:57.787 回答