I am doing string processing in Matlab and I usually use cell arrays to store individual words in the text
Example:
a = {'this', 'is', 'an', 'array', 'of', 'strings'}
For searching for the word ‘of’ in this array I loop through the array and check each individual element against my word. This method does not scale since if I get a large dataset my array a will grow large and looping through elements is not wise. I am wondering if there is any more smart way, perhaps a better native data structure in Matlab, that can help me run this faster?
A map container is one option. I don’t know what specific sort of string processing you intend to do, but here’s an example for how you can store each string as a key which is associated with a vector of index positions of that word in a cell array:
You could then get the index positions of a word:
Or check if a word exists in the cell array (i.e. if it is a key):