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

1 Ansicht (letzte 30 Tage)
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

Akzeptierte Antwort

Erivelton Gualter
Erivelton Gualter am 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)

Weitere Antworten (2)

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

Stephen23
Stephen23 am 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

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by