How can I compare two cell arrays inside two different structures?

I have two structures model and dataMtb. I want to compare the fields model.grRules and dataMtb.gene having dimensions 1128*1 and 4109*1 respectively. I want to create a cell array which would give me a list of only those genes which are common between the two cell arrays. I am attaching the .mat files for reference. Please note that the cells in model.grRules cell array may contain names of more than one gene in each cell. How do I achieve the above objective?

 Respuesta aceptada

Ameer Hamza
Ameer Hamza el 18 de Mayo de 2018
Editada: Ameer Hamza el 18 de Mayo de 2018
This code will extract common values of genes which occur in either of the vectors.
list1 = string(dataMtb.gene);
list2 = string(iEK1011.grRules);
commonValues = list1(cellfun(@(x) any(contains(list2, x)), list1));

2 comentarios

Thank you for the lucid code Ameer.
You are welcome.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Genomics and Next Generation Sequencing en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 18 de Mayo de 2018

Comentada:

el 22 de Mayo de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by