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 件のコメント

Walter Roberson
Walter Roberson 2012 年 5 月 30 日
how is the new word occurrence to be calculated ?
ilaria
ilaria 2012 年 5 月 30 日
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

サインインしてコメントする。

 採用された回答

Walter Roberson
Walter Roberson 2012 年 5 月 30 日

0 投票

[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 件のコメント

ilaria
ilaria 2012 年 5 月 30 日
Thank you! It is exactly what I was looking for!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCell Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by