我有以下矩阵:
[ 2 5 7 8 1 3 4 6 5 7 3 1;
1 1 1 1 2 2 2 2 3 3 3 3;]
第一行代表值,第二行代表
如果第二行中的值相同,我希望得到最大值,即它们的特征是相同的。所以,我想拥有的是:
[ 8 6 7]
,因为8
是第二行为1
时的最高值,6
当第二行为2
时为7
,3
1}}当第二行是{{1}}时。我可以用循环来做,但我想要矢量化解决方案,如果可能的话,当然,在一行。
答案 0 :(得分:3)
accumarray
完全符合您的要求
x=[ 2 5 7 8 1 3 4 6 5 7 3 1; 1 1 1 1 2 2 2 2 3 3 3 3;]
accumarray(x(2,:)',x(1,:)',[],@max)