在 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),:);
我有一个包含大约 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),:);