Borrar filtros
Borrar filtros

Indexing into a cell array to retrieve specific value

1 visualización (últimos 30 días)
Shannon McNee
Shannon McNee el 11 de Jul. de 2017
Comentada: Shannon McNee el 11 de Jul. de 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.

Respuesta aceptada

Guillaume
Guillaume el 11 de Jul. de 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 comentario
Shannon McNee
Shannon McNee el 11 de Jul. de 2017
Thank you, both options were extremely helpful and gave me exactly what I need.

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 11 de Jul. de 2017
Use ismember().

Categorías

Más información sobre Cell Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by