MATLAB Answers

Find set of values that are unique to the values in another column

Latest activity Answered by Stephen Cobeldick on 22 Nov 2019 at 8:41
I have a matrix like the following.
2 3
2 6
2 8
4 5
5 9
5 39
5 6
I need to do operations on numbers in the second column based on the values in the first column. It should be for the unique vaue "2", mean of (3,6,8) etc. Any help is appreciated. Thanks

  0 Comments

Sign in to comment.

3 Answers

Answer by Erivelton Gualter on 22 Nov 2019 at 5:34
 Accepted Answer

% Mqtrix
A =[2 3;
2 6
2 8
4 5
5 9
5 39
5 6]
% Get unique values on first collumn
un = unique(A(:,1)); % un = [2 4 5]
% Output
A(A(:,1)==un(1),2)

  0 Comments

Sign in to comment.


Answer by Andrei Bobrov
on 22 Nov 2019 at 6:57

[G,d] = findgroups(A(:,1));
out = [d,splitapply(@mean,A(:,2),G)];

  0 Comments

Sign in to comment.


Answer by Stephen Cobeldick on 22 Nov 2019 at 8:41

>> M = [2,3;2,6;2,8;4,5;5,9;5,39;5,6]
M =
2 3
2 6
2 8
4 5
5 9
5 39
5 6
>> [U,~,X] = unique(M(:,1));
>> V = accumarray(X,M(:,2),[],@mean);
>> [U,V]
ans =
2.0000 5.6667
4.0000 5.0000
5.0000 18.0000

  0 Comments

Sign in to comment.