Indexing into a cell array to retrieve specific value
1 view (last 30 days)
Show older comments
Shannon McNee
on 11 Jul 2017
Commented: Shannon McNee
on 11 Jul 2017
Hello,
I have a 8x5 cell array called dat_cell, like this:
dat = {... 9059 24 'x' 'F' 'United Kingdom' 10764 32 'x' 'F' 'United Kingdom' 11138 22 'x' 'M' 'United Kingdom' 11334 24 'x' 'M' 'United Kingdom' 11965 24 'x' 'M' 'United Kingdom' 12095 29 'x' 'F' 'United Kingdom' 12270 23 'x' 'F' 'United Kingdom' 12547 21 'x' 'F' 'United Kingdom'}
Where the first column is ID number, second is age, third is email address, fourth is gender and fifth is location.
I would like to be able to index into this cell array using a specific subjects email address as a string to retrieve their specific ID number.
For example, if I created a string like:
sj_name = 'xxxx@gmail.com'
Would I then be able to use this string to index into dat_cell and find the ID number associated with that email?
I'm sure this is really simple and I'm just over complicating things. I have been trying to use functions such as find but haven't had any luck.
Thank you in advance for any help.
0 Comments
Accepted Answer
Guillaume
on 11 Jul 2017
In any case:
sj_name = 'xxxx@gmail.com';
ids = cell2mat(yourcellarray(strcmp(yourcellarray(:, 3), sj_name), 1));
If you are absolutely certain that there is only ever one match:
id = yourcellarray{strcmp(yourcellarray(:, 3), sj_name), 1};
More Answers (1)
See Also
Categories
Find more on Cell Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!