Sum matrix with repeating indices
Mostrar comentarios más antiguos
Hi! I have one matrix, A, that has one column of identifier values (with repeats and some missing numbers) and a column of values. I'd like to produce a column of all of the unique values and then another column of their sum. For example, if A is as follows, i want to produce B.
A = [1 2
1 -3
2 0
3 3
5 6
2 -4
4 0.5
7 9
7 2]
% I want to produce B
B = [1 -1
2 -4
3 3
4 0.5
5 6
7 11]
Respuesta aceptada
Más respuestas (1)
One perfectly valid MATLAB approach:
A = [1 2
1 -3
2 0
3 3
5 6
2 -4
4 0.5
7 9
7 2];
[uA,~,jj] = unique(A(:,1));
n_uA = numel(uA);
B = [uA zeros(n_uA,1)];
for ii = 1:n_uA
B(ii,2) = sum(A(jj == ii,2));
end
disp(B)
% % I want to produce B
% B = [1 -1
% 2 -4
% 3 3
% 4 0.5
% 5 6
% 7 11];
Categorías
Más información sobre Matrix Indexing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!