MATLAB Answers

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

1 view (last 30 days)
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.

Accepted Answer

Erivelton Gualter
Erivelton Gualter on 22 Nov 2019
% 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.

More Answers (2)

Andrei Bobrov
Andrei Bobrov on 22 Nov 2019
[G,d] = findgroups(A(:,1));
out = [d,splitapply(@mean,A(:,2),G)];

  0 Comments

Sign in to comment.


Stephen Cobeldick
Stephen Cobeldick on 22 Nov 2019
>> 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.

Sign in to answer this question.


Translated by