MATLAB Answers

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

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

  댓글 수: 0

로그인 to comment.

채택된 답변

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

로그인 to comment.

추가 답변(0개)

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


Translated by