Vector to Indicate if Data equals the Maximum by group

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].

 採用された回答

Akira Agata
Akira Agata 2022 年 4 月 19 日

1 投票

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

その他の回答 (0 件)

カテゴリ

製品

タグ

質問済み:

2022 年 4 月 19 日

回答済み:

2022 年 4 月 19 日

Community Treasure Hunt

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

Start Hunting!

Translated by