2013-07-20 3 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) с другим набором веторов/матриц, и он возвращает max каждого столбца, который не коррелирован вообще. –

+0

Я только что отредактировал свой ответ. Эта версия специально ищет строку вывода 'a', которая соответствует максимальному столбцу счета, больше, чем максимум в любом столбце. Полагаю, это то, о чем спрашивал ваш вопрос. – horchler

+0

все еще не правильно. как насчет использования maxa = max (a (:, 2)); то я получу максимум 2-го столбца, а затем, как найти номер в первом столбце, который соответствует maxa? –

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

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

solution = y(ind_table,:) 
Смежные вопросы