几天来我一直在想如何在Matlab中高效实现m个专家的加权多数投票。以下是我想要的一个示例。假设我们有3个权重向量的专家
w=[7 2 6]
假设他们在A/B/C/D选项上投票n次,那么我们得到以下n x m的投票矩阵,其中每个专家的投票是列:
A B B
C A A
D B A
A A C
现在我想为每一行找到加权多数表决。我们通过将投票给每个选项的专家的权重相加,并选择最大权重来计算它。例如,在第一行中,选项A的累积权重为7(专家1的投票),B的累积权重为8(专家2和3的投票),因此最终投票结果是B。因此,我们得到以下累积权重矩阵和最终投票结果:
A B C D
- - - -
7 8 0 0 -> B
8 0 7 0 -> A
6 2 0 7 -> D
9 0 6 0 -> A
现在,使用 for 循环对行数 n 进行实现更加直观易懂。我正在寻找一种不需要这个可能很长的循环,而是使用向量算术运算的解决方案。我已经有了一些想法,但每个想法都遇到了一些问题,所以现在不会提及它们。如果有人之前遇到过类似的情况,请分享您的解决方案。
谢谢。