Comparing two matrix elements summing third and storing them separately
Info
This question is closed. Reopen it to edit or answer.
Show older comments
the problem is extension of the question https://www.mathworks.com/matlabcentral/answers/106095-comparing-matrix-elements-and-performing-operation-if-equal
whenever the elemnts in column 1 and 3 both are repeated elsewhere in matrix then only third column should get added up
e.g
A=
18 18 1
17 20 2
18 18 1
17 25 2
19 17 3
18 18 1
19 17 3
then answer should be
18 18 1
17 20 2
18 18 2
17 25 2
19 17 3
18 18 3
19 17 6
After that i want that the final matriz should be of the form
x = [ 17 20 2
17 25 2
18 18 3
19 17 6]
Answers (2)
madhan ravi
on 7 Jul 2019
T = array2table(A);
t = groupsummary(T,{'A1','A2'},'sum');
x = t{:,[1,2,end]}
1 Comment
madhan ravi
on 7 Jul 2019
Or:
[u,~,idx] = unique(A(:,1:2),'rows');
x = [u,accumarray(idx,A(:,3),[],@sum)]
Andrei Bobrov
on 7 Jul 2019
[B,BB] = groupsummary(A(:,3),A(:,1:2),'sum');
out = [BB{:},B];
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!