Comparing two matrix elements summing third and storing them separately
Info
Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
Ältere Kommentare anzeigen
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]
Antworten (2)
madhan ravi
am 7 Jul. 2019
T = array2table(A);
t = groupsummary(T,{'A1','A2'},'sum');
x = t{:,[1,2,end]}
1 Kommentar
madhan ravi
am 7 Jul. 2019
Or:
[u,~,idx] = unique(A(:,1:2),'rows');
x = [u,accumarray(idx,A(:,3),[],@sum)]
Andrei Bobrov
am 7 Jul. 2019
[B,BB] = groupsummary(A(:,3),A(:,1:2),'sum');
out = [BB{:},B];
Diese Frage ist geschlossen.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!