Filter löschen
Filter löschen

Indexing into a cell array to retrieve specific value

1 Ansicht (letzte 30 Tage)
Shannon McNee
Shannon McNee am 11 Jul. 2017
Kommentiert: Shannon McNee am 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.

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 11 Jul. 2017
Use ismember().

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by