comparing columns of cell arrays

6 views (last 30 days)
Bouchra
Bouchra on 8 Feb 2019
Answered: Bouchra on 8 Feb 2019
Hi,
I am new to matlab and would like to compare two cell arrays of a structure which have a different size.
My first field (drug.compound) of the structure (named drug) contains one column of IDs (28722x1) and my second field(drug.enzymes) contains one column of IDs 877x1. I would like to make a table in which the relation is shown between the IDs [28772×857] by a logical array.
Any suggestions?
I tried the strcmp function and == operator but not seem to work
  2 Comments
Stephen23
Stephen23 on 8 Feb 2019
Edited: Stephen23 on 8 Feb 2019
@Bouchra Ezzamouri: please describe the contents of the cell arrays: are they numeric arrays, or character vectors, or string arrays, or ... ? If you are not sure, please run these commands:
class(drug.compound{1})
class(drug.enzymes{1})
and tell us their outputs. It would be easiest if you simply uploaded the structure in a .mat file, by clicking the paperclip button.

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 8 Feb 2019
Edited: Stephen23 on 8 Feb 2019
As most of the data seem to be numeric encoded as character vectors, then we can easily convert them from char to numeric arrays and use an efficient logical comparison:
>> Nc = str2double(drugb.compounds(:));
>> Ne = str2double(drugb.enzymes(:)).';
>> X = bsxfun(@eq,Nc,Ne);
>> size(X)
ans =
28772 1745
Some of the character vectors contain things like
"# Tanaka T, Tachibana H, Nonaka G, Nishioka I, Hsu FL, Kohda H, Tanaka O: Tannins and related compounds. CXXII. New dimeric, trimeric and tetrameric ellagitannins, lambertianins A-D, from Rubus lambertianus Seringe. Chem Pharm Bull (Tokyo). 1993 Jul;41(7):1214-20. ""Pubmed"":http://www.ncbi.nlm.nih.gov/pubmed/8374992 [Isolation]"
which will be converted to NaN and will therefore return false from the logical comparison.

More Answers (1)

Bouchra
Bouchra on 8 Feb 2019
thankyou! this helped a lot

Community Treasure Hunt

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

Start Hunting!