在 MatLab 中查找浮点数组的模式

Finding the mode of floating point arrays in MatLab

我有一个包含大约 25,000 个 4-D 向量的数组,这些向量围绕
[1 .001 .0015 .0000010434]

我正在寻找向量的模式。我尝试了 MatLab 的内置 mode() 函数,但我得到的结果是 1 0 0 0。会不会是因为小数点太小,MatLab的mode()函数四舍五入到某个小数点,结果为0?有没有办法绕过这个?我还阅读了 histc() 的功能,但不明白如何使用它来达到我的目标。

感谢任何帮助,提前致谢。

您可以使用 unique 查找其结果中每一行的重复次数:

 % A is a  25000 * 4 matrix
 [C,~,ic] = unique(A,'rows'); % find unique rows

在上面,ic显示了行的索引。因此,这些的众数可以确定最重复的向量:

 modeRow = A(mode(ic),:);