A Карта контейнера является одним из вариантов.Я не знаю, какой именно тип обработки строк вы намереваетесь выполнить, но вот пример того, как вы можете хранить каждую строку в качестве ключа, который связан с вектором позиций индекса этого слова в массиве ячеек:
a = {'this', 'is', 'an', 'array', 'of', 'strings', 'this', 'is'};
strMap = containers.Map(); %# Create container
for index = 1:numel(a) %# Loop over words to add
word = a{index};
if strMap.isKey(word)
strMap(word) = [strMap(word) index]; %# Add to an existing key
else
strMap(word) = index; %# Make a new key
end
end
Затем можно получить индексные позиции слова:
>> indices = strMap('this')
indices =
1 7 %# Cells 1 and 7 contain 'this'
Или проверить, существует ли слово в массиве ячеек (т. Е. Если это ключ):
>> strMap.isKey('and')
ans =
0 %# 'and' is not present in the cell array