MATLAB Answers

Summing up values of A matrix if it matches the same value in B

1 view (last 30 days)
JL
JL on 27 Aug 2019
Commented: JL on 27 Aug 2019
Hi everyone, I have 2 matrices A and B
A =[1;
2;
1;
3;
4;
5;
6;];
B = [40.5511;
40.5511;
34.6732;
34.6731;
32.1111;
32.1111;
32.1111;]
I want to create C by summing up the values in A if they have the same corresponding value in B.
C = [3 40.5511;
1 34.6732;
3 34.6731;
15 32.1111;];

  0 Comments

Sign in to comment.

Accepted Answer

Alex Mcaulley
Alex Mcaulley on 27 Aug 2019
One option:
[G,ID] = findgroups(B);
C = [splitapply(@sum,A,G),ID]
C =
15.0000 32.1111
3.0000 34.6731
1.0000 34.6732
3.0000 40.5511

  4 Comments

Show 1 older comment
JL
JL on 27 Aug 2019
Hi Alex, do you how I can make matrix A with 10 decimal points? like num2str? will it affect the code?
Alex Mcaulley
Alex Mcaulley on 27 Aug 2019
You can change the visualization of your command window using format. Do you mean this?
format short
C =
15.0000 32.1111
3.0000 34.6731
1.0000 34.6732
3.0000 40.5511
format long
C =
15.000000000000000 32.111100000000000
3.000000000000000 34.673099999999998
1.000000000000000 34.673200000000001
3.000000000000000 40.551099999999998

Sign in to comment.

More Answers (0)

Sign in to answer this question.