How to sum by identifier

4 vues (au cours des 30 derniers jours)
QuanCCC
QuanCCC le 16 Sep 2018
Modifié(e) : QuanCCC le 25 Sep 2018
Hi there,
I have a table data: A column is the identifier data, column B C D is the data I want to sum up by the same A value.
How can I do that?
I tried 'accumarray', but it seems I mixed table and array. MATLAB says"Undefined function 'accumarray' for input arguments of type 'table'." Then I turned my data to an array, MATLAB says "All input arguments must be tables." And I do have 3 columns values to be summed up. Thank you.
[a,~,c] = unique(yourdata(:,1)); % 'yourdata(:,1)' 1 means column 1 is the identifier
output = [a, accumarray(c,yourdata(:,2))]; % 2 means the colume to be summed up.
  1 commentaire
Walter Roberson
Walter Roberson le 16 Sep 2018
yourdata{:, 1} instead of (:, 1)

Connectez-vous pour commenter.

Réponse acceptée

Steven Lord
Steven Lord le 16 Sep 2018
Use groupsummary with A as the grouping variable.
  1 commentaire
QuanCCC
QuanCCC le 25 Sep 2018
Modifié(e) : QuanCCC le 25 Sep 2018
If the sum up is for all data with the same identifier, a groupsummary is the best idea. If you have more data (more than needed for the sum up) with the same identifier, the codes I mentioned works.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical 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