MATLAB Answers

JL
0

Arrange be in order of their pairing, and count how many times they appear

Asked by JL
on 12 Aug 2019
Latest activity Commented on by JL
on 17 Aug 2019
I have 2 matices, A and B. What I want to do is for B to be rearranged like C, and remove any repreated row.
A = [1; 2; 3; 4; 5; 6;];
B = [1 2; 2 3; 1 2; 1 3; 1 4; 1 2;]
I would like to produce C with A and B
C = [1 2;
1 3;
1 4;
2 3;]
Thereafter, after reordering them, I want to add the same pair i.e. add all the 1 2s together like in D.
D = [1+3+6;
4;
5;
2;];
= [9;
4;
5;
2;];

  0 Comments

Sign in to comment.

1 Answer

Answer by the cyclist
on 12 Aug 2019
 Accepted Answer

[C,~,idx] = unique(B,'row');
D = accumarray(idx,A);
1 + 3 + 6 = 10. ;-)

  2 Comments

My interpretation is that D should be
>> accumarray(ix,sum(B,2))
ans =
9
4
5
5
>>
but the description is confusing at best and the answer presented isn't correct whichever is the actual definition wanted...

Sign in to comment.