Effacer les filtres
Effacer les filtres

Indexing into a cell array to retrieve specific value

1 vue (au cours des 30 derniers jours)
Shannon McNee
Shannon McNee le 11 Juil 2017
Commenté : Shannon McNee le 11 Juil 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.

Réponse acceptée

Guillaume
Guillaume le 11 Juil 2017
You would probably be better off using a table instead of a cell array.
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};
  1 commentaire
Shannon McNee
Shannon McNee le 11 Juil 2017
Thank you, both options were extremely helpful and gave me exactly what I need.

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 11 Juil 2017
Use ismember().

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by