How to sum by identifier

6 Ansichten (letzte 30 Tage)
QuanCCC
QuanCCC am 16 Sep. 2018
Bearbeitet: QuanCCC am 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 Kommentar
Walter Roberson
Walter Roberson am 16 Sep. 2018
yourdata{:, 1} instead of (:, 1)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Steven Lord
Steven Lord am 16 Sep. 2018
Use groupsummary with A as the grouping variable.
  1 Kommentar
QuanCCC
QuanCCC am 25 Sep. 2018
Bearbeitet: QuanCCC am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by