2015-12-22 66 views
-2

我正在使用一個全局計數器(整數)進入一個函數,以便我可以得到某個事件的大小。 在int main()上,我使用以下結構將事件的大小通過多次迭代打印到文件中。提取一個計數器註冊一定數量的頻率

if (count != 0) 
{ 
    outputFile<<i<<"\t\t"<<count<<std::endl; 
    count=0; 
} 

但是,我需要提取該大小的no雪崩(註冊出現一定大小的頻率)。 任何線索我如何做到這一點?非常感謝

+0

爲什麼你需要知道具體的寄存器? – stdcall

+1

使用std :: map ,其中的鍵是'count',並且該值是計數的計數?例如。直方圖[COUNT] ++; – James

+0

@stdcall我需要的部分數據 – egvc22

回答

0

所以,你有文本輸出,看起來像這樣:

1  3 
2  49 
3  2 
4  8 
5  2 
6  3 
7  3 

您可以生成每個計數是這樣的:

sort -nk2 output.txt | uniq -cf1 | sort -nk3 

它給你:

2  3  2 
3  1  3 
1  4  8 
1  2  49 

第一列是頻率,第二列是任意值i其中計數發生了,第三列是count。如果繪製X軸第三列和Y軸第一列的條形圖,您將得到一個直方圖。

+0

進行處理我實際上正在研究嵌入在我的代碼 – egvc22

+0

實際上,你的解決方案可能就足夠了 - 你我如何保存生成的數據?謝謝 – egvc22

+0

你的意思是如何保存'sort'管道的輸出?只需在末尾添加'> histogram.txt'。 –