Skuteczna implementacja głosowania w ważonej liczbie klas w MATLAB

Przez kilka dni zastanawiałem się, jak skutecznie wdrożyć ważoną większość głosów ekspertów w matlab. Oto przykład tego, czego chcę. Załóżmy, że mamy 3 ekspertów z wektorem wag

w=[7 2 6]

Załóżmy, że głosują n razy na opcje A / B / C / D, więc na przykład otrzymujemy następującą macierz głosowania n x m, gdzie kolumny są głosami każdego eksperta.

A B B
C A A
D B A
A A C

Teraz chciałbym znaleźć ważoną większość głosów dla każdego wiersza. Obliczamy to dodając wagi ekspertów, którzy głosowali na każdą opcję i wybierając maksymalną wagę. Na przykład w pierwszym wierszu opcja A ma łączną wagę 7 (głos eksperta 1), a B ma łączną wagę 8 (głosy eksperta 2 i 3), a zatem końcowy głos to B. Mamy więc po macierzy skumulowanych wag i głosów końcowych:

A B C D
- - - -
7 8 0 0 -> B
8 0 7 0 -> A
6 2 0 7 -> D
9 0 6 0 -> A

Teraz implementacja tego użycia pętli for ponad liczbą wierszy n jest mniej lub bardziej prosta. Teraz szukam rozwiązania, które nie wymaga tej potencjalnie długiej pętli i zamiast tego używa arytmetyki wektorowej. Miałem kilka pomysłów, ale natknąłem się na problemy z każdym z nich, więc nie będę ich teraz wspominał. Jeśli ktoś miał podobną sytuację wcześniej, podziel się swoimi rozwiązaniami.

Dzięki.

questionAnswers(1)

yourAnswerToTheQuestion