Vector to Indicate if Data equals the Maximum by group

1 view (last 30 days)
I have a data vector and a group vector, how do I generate a vector (the same size as the data vector) of 0's and 1's to indicate if data is the group maximum. For example, data = [1;2;3;6;5] and group = [1;1;2;3;3]. I want to get [0;1;1;1;0].

Accepted Answer

Akira Agata
Akira Agata on 19 Apr 2022
How about the following?
data = [1;2;3;6;5];
group = [1;1;2;3;3];
idx = splitapply(@(x) {x == max(x)},data,group);
idx = cell2mat(idx);
disp(idx)
0 1 1 1 0

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!

Translated by