2013-03-29 65 views
0

我在MATLAB中有一個161 * 32的矩陣(標記爲「indpic」),我試圖找出連續出現給定數字的頻率。所以我認爲我需要分別爲每個值分析每一行,但我非常不確定如何去解決這個問題(我只是MATLAB新手)。這也意味着我對循環以及其他方面都無能爲力。如何查找出現在MATLAB矩陣的所有行中的值的頻率?

任何幫助將不勝感激!

回答

2

如果你想算一筆特定的號碼出現在每一行中的次數,你可以這樣做:

sum(indpic == val, 2) 

其中indpic是你的矩陣(圖像)和val理想值被計算。

說明:使用該值檢查每個元素的相等性會在計數值的位置處生成一個帶「1」的布爾矩陣。加總每行(,即尺寸的總和)得到期望的列向量,其中每個元素等於在對應行中重複的次數val

如果要計算圖像中每個值的重複次數,這稱爲histogram,您可以使用histc命令來實現此目的。例如:

histc(indpic, 1:256) 

計算圖像indpic中出現的每個值從1到256的次數。

+0

什麼是2嗎? – frickskit

+0

'2'表示這些值沿第二維(_i.e_ rows)相加。 –

+1

乾杯,工作出色:) – Kadin

0

這樣,

sum(indpic(rownum,:) == 7) 

明顯變化7到什麼。

0

你可以只寫

length(find(indpic(row_num,:)==some_value)) 

,它會給你在「ROW_NUM」等於「SOME_VALUE」元素的數量第i行矩陣「indpic」

相關問題