merging columns in cellarray

Hi everybody! I have a question: I have a cell array with 3 columns, in the first the word occurance, in the second the frequency of this word in the text 1, in the third the occurance of the word in text 2.
for example:
  • [] 0,007 0
  • [] 0 0,002
  • 'a' 0,015 0
  • 'a' 0 0,016
  • 'aa' 0 4,77e-06
  • 'abdomen' 1,90e-05 0
  • 'abdomen' 0 1,43e-05
  • 'aberrant' 6,33e-05 0
  • 'aberrant' 0 4,77e-05
What I would get is:
  • [] 0,007 0,002
  • 'a' 0,015 0,016
  • 'aa' 0 4,77e-06
  • 'abdomen' 1,90e-05 1,43e-05
  • 'aberrant' 6,33e-05 4,77e-05
So I want to delete duplicates and to merge the two probabilities.. any suggestions??
Thank you very much!

2 Comments

how is the new word occurrence to be calculated ?
that's just the relative frequency of that word in the text.. but this is already calculated.. now I have just to "make an unique" to merge together the same words, but also the probability..
so for example:
'a' 0,015 0
'a' 0 0,016
a is the same symbols, and I know that in the first text has a frequency of 0.015 in the second 0.016..I want to obtain:
'a' 0.015 0.016

Sign in to comment.

 Accepted Answer

[uniquewords, junk, wordidx] = unique(YourCell(:,1));
mergedprobs = accumarray( wordidx(:), cell2mat(YourCell(:,3)) ); %totals by default
mergedoccur = accumarray( wordidx(:), cell2mat(YourCell(:,2)) ); %totals by default
NewCell = [uniquewords(:), num2cell(mergedoccur(:)), num2cell(mergedprobs(:)) );

1 Comment

Thank you! It is exactly what I was looking for!

Sign in to comment.

More Answers (0)

Categories

Find more on Text Analytics Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!