If statement for the structure in table

1 vue (au cours des 30 derniers jours)
NA
NA le 12 Oct 2020
Modifié(e) : madhan ravi le 12 Oct 2020
I have a table like this:
%% table info
alphabet = {'A';'A';'B';'A';'C';'D';'C'};
val = [52.1;20.0;13.27;10.49;4.35;4.16;3.78];
relation = {[2,5];[2,5];3;[10,11];2;5;9};
inx = [2;2;5;6;10;12;12];
T = table(alphabet,val,relation,inx);
I have two problems. First, want to find the rows that consist of 'A'.
find(T.alphabet{:}=='A')
Second, count the occurrences of 'A', 'B', 'C', and 'D'.
I try to use 'accumarray' but it does not work.

Réponse acceptée

madhan ravi
madhan ravi le 12 Oct 2020
Modifié(e) : madhan ravi le 12 Oct 2020
FIND_rows_of_A = find(strcmp(T.alphabet, 'A'))
%or
FIND_rows_of_A = find(ismember(T.alphabet, 'A'))
[Alphabets, ~, c] = unique(T.alphabet);
counts = accumarray(c, 1); % use it the right way ;)
Wanted = [array2table(Alphabets), array2table(counts)]
% if you're using recent versions of MATLAB then
Wanted = groupsummary(T, 'alphabet')
%or
Wanted = groupcounts(T, 'alphabet')

Plus de réponses (0)

Catégories

En savoir plus sur Tables dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by