2016-12-14 58 views
1

我是Matlab新手,我有一個基本問題。如何使用Matlab計算數據集中某一行的相對頻率?

我有這樣的數據集:

1 2 3 
4 5 7 
5 2 7 
1 2 3 
6 5 3 

我試圖從數據集計算上述 相對頻率特別計算的X = 1的相對頻率,Y = 2和z = 3

我的代碼是:

data = load('datasetReduced.txt') 
    X = data(:, 1) 
    Y = data(:, 2) 
    Z = data(:, 3) 

    f = 0; 
    for i=1:5 
     if X == 1 & Y == 2 & Z == 3 
     s = 1; 
     else 
     s = 0; 
     end 
     f = f + s; 
    end 
    f 
    r = f/5 

它給了我一個0結果。 代碼如何糾正?

感謝,

少將

回答

0

我想你要計算每個實例的頻率,那麼試試這個

data = [1 2 3 
4 5 7 
5 2 7 
1 2 3 
6 5 3]; 


[counts,centers] = hist(data , unique(data)) 

中心是你的唯一實例和計數是他們每個人的次數。結果應該是如下:

counts = 

    2  0  0 
    0  3  0 
    0  0  3 
    1  0  0 
    1  2  0 
    1  0  0 
    0  0  2 
centers = 

    1  2  3  4  5  6  7 

這意味着你有7種獨特的情況下,從1到7並沒有在第一列兩個1並沒有在第二和第三任1S等

+0

謝謝,非常有益 – Shosho

+0

歡迎您。如果這是您的答案,那麼您很高興將其標記爲答案。謝謝 –