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 に答える