Sum specific rows of an array
Ältere Kommentare anzeigen
Hi,
I have an array like:
0.2 2 3
1 3 4
1 4 6
0.8 4 6
2 5 1
1 6 2
0.4 6 2
Now I want to code that MATLAB sums up the values of the 1st column in the rows where the value of the 2nd and 3rd column match.
So the result should look like this below:
0.2 2 3
1 3 4
1.8 4 6
2 5 1
1.4 6 2
I hope someone can help me, thank you!
3 Kommentare
Bob Thompson
am 23 Jan. 2019
"where the value of the 2nd and 3rd column match."
How do the values of the 2nd and 3rd column match in any of these rows?
In general form this should be fairly easy with logic indexing.
yinki23
am 23 Jan. 2019
James Tursa
am 23 Jan. 2019
Are the values in columns 2 and 3 always positive integers?
Akzeptierte Antwort
Weitere Antworten (1)
s
am 23 Jan. 2019
clc;
clear all;
A = [0.2 2 3;1 3 4;1 4 6;0.8 4 6;2 5 1;1 6 2;0.4 6 2];
B = size (A,1);
Result = [];
n = 0;
for i = 1:1:B-1
if (A(i,2) == A(i+1,2) && A(i,3) == A(i+1,3))
n = n+1;
end
end
for j = 1:1:B-n
if (A(j,2) == A(j+1,2) && A(j,3) == A(j+1,3))
Sum = A(j,1)+A(j+1,1);
Result = [Result; Sum A(j,2) A(j,3)]
A([j+1],:) = [];
else
Result = [Result; A(j,1) A(j,2) A(j,3)]
end
end
This should help
Kategorien
Mehr zu Logical finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!