IDL返回众数(数组中出现次数最多的值)
2024-09-02 03:29:30
对于整型数组,可以直接利用histogram函数可以实现,示例如下:
IDL>array = [1, 1, 2 , 4, 1, 3, 3, 2, 4, 5, 3, 2, 2, 1, 2, 6, -3]
IDL>distfreq = Histogram(array, MIN=Min(array))
IDL>mode = Where(distfreq EQ max(distfreq)) + Min(array)
IDL> Print, mode
2
但是对于浮点型数据,上面的方法就失效了,我暂时想到一个比较笨的办法,实例如下:
function mode, array
b = array[uniq(array, sort(array))]
array_count=fltarr(n_elements(b))
for ii=0, n_elements(b)-1 do begin
index=where(abs(array-b(ii)) le 1.e-10,count)
array_count(ii)=count
endfor
mode=b(where(array_count eq max(array_count)))
return,mode
end
pro test1
array = [1, 2.1, 1, 2.1, 3, 4, 5, 6, 6, 5]
print,mode(array)
end
参考网址:
http://www.idlcoyote.com/code_tips/mode.html
https://www.harrisgeospatial.com/docs/HISTOGRAM.html
最新文章
- sublime快捷键操作
- Oracle直方图导致SQL不走索引.
- How to Detect and Track Object With OpenCV
- HDU 4276-The Ghost Blows Light(树状背包)
- Farewell, 2015, welcome 2016
- Search gold(dp)
- php提供service总结---wsdl篇
- FZU	2086 餐厅点餐(模拟)
- HFun.快速开发平台(二)=》自定义列表实例(请求参数的处理)
- JavaWeb 后端 <;七>; 之 mvc3层架构
- java第一课,java基础
- Java学习之二维数组定义与内存分配详解
- set操作
- selenium+unittest自动化测试
- 《python for data analysis》第二章,美国1880-2010年出生人口姓名的数据分析
- java后台动态生成导出excel
- 测试思想&#160;QA的价值体现
- Docker学习链接
- 【MOOC EXP】Linux内核分析实验四报告
- 不借助autolt实现下载文件到指定目录