Matlab では、各グループ (別の配列でラベル付けsubs
) の配列の実行中の最大値を計算するにはどうすればよいですか? たとえば、配列subs
を 3 人の生徒のラベルと考え、対応する値val
をテストの点数として考えます。各生徒が達成した現在の最大得点を計算したいと思います。
>> subs = [1; 3; 1; 1; 3; 2];
>> val = [101 102 103 98 105 106];
目的の出力は、と同じサイズでval
、その学生が達成した現在の最大スコアを示します。
output = [101, 102, 103, 103, 105, 106]
私のデータセットは非常に大きく、何百万ものエントリがあるため、for ループの使用を避けたいと考えています。各学生の全体的な最大スコアが必要な場合は、使用しますaccumarray(subs,val,[],@max)
が、ここでは実行最大にしたいので、問題はより困難です。
Rにも同様の質問がありますが、Matlabでもできるようにしたいです。 Rでグループごとに実行中の最大値を見つける
ありがとう!