Добавление штрафа к буквам, генерирующим ячейки - PullRequest
0 голосов
/ 29 февраля 2012

Я объединил следующие сообщения , как подсчитать уникальные элементы ячейки в matlab?

Как найти, какая буква имеет максимальное вхождение

чтобы быть в состоянии найти максимальное происшествие со штрафом.то есть cell = 'a' 'b' 'a' 'c' 'a' 'a' 'e' штраф = [5] [2] [4] [2] [5] [1] [0]

 letterWeight= [1*5] [1*2] .....

now letter count will be 'a'[5+4+5+1]
                         'b'[2]
                         'c'[2]
                         'e'[0]
now maxcount= as done in max occurance

мне просто нужна подсказка, может быть, я упускаю что-то, что вы можете облегчить мне, спасибо

нужно добавить что-то в последнюю строку, но как?

enter code here str= num2cell(Allquants{p});
                matchcell ={'a','b','c','d','e'};
                [~,index] =ismember(str,matchcell);
                count = accumarray(index(:),1,[numel(matchcell)  1]);

Теперькод:

      plaincount = accumarray(index(:),1,[numel(matchcell)  1]);
      count = accumarray(index(:),penalties{p}{r},[numel(matchcell)  1],@sum); 

Может быть, это должно быть за пределами цикла?да {г} должен быть удален

1 Ответ

1 голос
/ 29 февраля 2012

Вы должны поместить штрафы во второй аргумент accumarray, поскольку именно эти значения будут суммироваться (обратите внимание, что штраф должен быть числовым, поэтому вам, возможно, придется вызвать cell2mat):

count = accumarray(index(:),penalties,[numel(matchcell)  1],@sum);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...