Sum specific rows of an array
Mostrar comentarios más antiguos
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 comentarios
Bob Thompson
el 23 de En. de 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
el 23 de En. de 2019
James Tursa
el 23 de En. de 2019
Are the values in columns 2 and 3 always positive integers?
Respuesta aceptada
Más respuestas (1)
s
el 23 de En. de 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
Categorías
Más información sobre Logical 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!