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

조회 수: 1(최근 30일)
JL 27 Aug 2019
댓글: JL 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;];

로그인 to comment.

### 채택된 답변

Alex Mcaulley 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

표시 이전 댓글 수: 1
JL 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 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
JL 27 Aug 2019
thanks!

로그인 to comment.

### 추가 답변(0개)

이 질문에 답변하려면 로그인을(를) 수행하십시오.

Translated by