Arrays Matlab中的群内最大值
我有以下矩阵:Arrays Matlab中的群内最大值,arrays,matlab,max,Arrays,Matlab,Max,我有以下矩阵: [ 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],因为当第二行是1时,8是最高值,当第二行是2时,6,当第二行是3时,7。我可以用一个循环来完成,但我想要矢量化的解决方案,如果可能的话,当然可以在一行中完成。accumarray正是您想要的 x=[ 2 5 7 8 1 3 4 6 5 7 3
[ 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]
,因为当第二行是1
时,8
是最高值,当第二行是2
时,6
,当第二行是3
时,7
。我可以用一个循环来完成,但我想要矢量化的解决方案,如果可能的话,当然可以在一行中完成。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)
@丹尼尔:谢谢,我没有意识到<代码>accumarray!很好+1.