If statement for the structure in table
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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.
0 commentaires
Réponse acceptée
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')
0 commentaires
Plus de réponses (0)
Voir également
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!