MATLAB: Speeding up comparison using strcmp

reducing the code execution timestring comparison

Hello! I have a list of approximately 2 million records and I would like to compare the records with a list of devices which generates those records. My code is as follows where "c" is the list of records and "device" is the list for distinct devices:
for ii = 1:length(device)
idx = ( strcmp(c,device(ii,:)) );
lidx = find(idx);
devid{ii} = lidx;
The problem is the above code takes too long time (more than an hour). Would you please tell me know how to reduce execution time?
Many thanks!

Best Answer

I would convert device to a cell array (using cellstr) and then call ismember without the loop, something like
cellDevice = cellstr(device);
[~, devid] = ismember(cellDevice, records);