Используйте третий выход unique
, и убедитесь, что эти входные строки находятся в массиве cell
. Третий вывод unique
довольно крут, потому что он присваивает уникальный идентификатор для каждой уникальной величины, которая видна на входе. Таким образом, если у вас была последовательность символов от a
до e
, она назначила бы уникальный идентификатор для каждого уникального символа, который он нашел, между 1 и 5. Также первый вывод unique
дает вам массив, который содержит только уникальные величины, которые видны на входе.
Вы можете использовать accumarray
на этом третьем выходе, чтобы подсчитать, сколько раз вы видите конкретную страну по всем перечисленным странам.
val = {'USA'; 'USA'; 'France'; 'USA'; 'France'};
[countries,~,id] = unique(val);
counts = accumarray(id, 1);
я получаю:
counts =
2
3
Также для countries
:
countries =
'France'
'USA'
Обратите внимание, что каждый элемент counts
соответствует тому, сколько раз вы видите, что конкретная страна в том же положении, что и страна в countries
, поэтому Франция виден 2 раза, а США 3 раза.
hahahahaha, сойдите с моей головы! +1 – rayryeng
Ницца. Не знал о пироге. Это определенно должен быть принятым ответом. – rayryeng
@rayryeng Googling помогает в эти дни! :) – Divakar