У меня есть ячейка 1x2
A
в Matlab. A{i}
- ячейка размера 30494866x1
для i=1,2
. A{i}(j)
- 1x21
char для i=1,2
и j=1,...,30494866
.Частота подсчета в ячейке char в Matlab: быстрый код?
Например я сообщаю здесь A{2}(1:3)
'116374117927631468606'
'112188647432305746617'
'116374117927631468606'
Я хочу, чтобы подсчитать, сколько раз повторяется каждый 1x21
символ в A{2}
. Например, только с учетом A{2}(1:3)
, я хочу, чтобы получить
'116374117927631468606' 2
'112188647432305746617' 1
Что я делаю в данный момент
a=unique(A{2},'stable');
b=cellfun(@(x) sum(ismember(A{2},x)),a);
Однако это невероятно медленно (работает со вчерашнего дня). Есть ли у вас какие-либо предложения о том, как я могу ускорить код?
Так вы хотите знать, сколько раз 1 используется, сколько раз 2 и т. д. У вас только 0-9? – smttsp
Или вам нужна частота 21-символьных строк? – smttsp
Второй. Я уточнил свой вопрос, спасибо – user3285148