2013-07-20 23 views
1

我需要幫助來找到使用表格的最大計數值。例如:我想從使用表格(MATLAB)找到最大計數值

tabulate([1 2 4 4 3 4]) 

回報

Value Count Percent 
     1  1 16.67% 
     2  1 16.67% 
     3  1 16.67% 
     4  3 50.00% 

我想有最大計數或最大計數,也值如果可能的話,我需要對應的最大計數所有三列:「4:3 50.00%」

回答

1

隨着輸出(nargout == 1),tabulate返回一個正常矩陣,通過它可以使用max

a = tabulate([1 2 4 4 3 4]); % Get output as matrix 
[~ , maxi] = max(a(:,2)); % Find index of max count (column 2) 
maxa = a(maxi,:)    % Row of a that correspond to max count 

如果你想要像沒有參數形式的字符串給你返回

maxa = 

    4  3 50 

然後,你可以使用sprintf

maxs = sprintf('%g %d %.2f%%',maxa) 

返回

maxs = 

    4 3 50.00% 
+0

我使用max(a)與另一組vetors/matrix並返回根本不相關的每列的最大值。 –

+0

我剛剛編輯了我的答案。該版本專門查找與最大計數列相對應的輸出「a」的行,而不是任何列中的最大值。我相信這就是你的問題所要求的。 – horchler

+0

它仍然不正確。如果我使用maxa = max(a(:,2));那麼我得到第二列的最大值,然後如何找到對應於maxa的第一列中的數字? –

1
x = [1 2 4 4 3 4]; % data 

y = tabulate(x); 
[m, ind_table]= max(y(:,2)); 

solution = y(ind_table,:)