Hello,
I have an excel file something like this:
Type Value
Type A 100
Type A 500
Type B 1000
I use xlsread to import data to matlab and i get two data types:
double
100
500
1000
and cell
Type Value
Type A
Type A
Type B
I need to read the "column Type" and then sum the "column Value", if the type is the same . The goal is to get something like this and than export to excel:
Type Value
Type A 600
Type B 1000
Can you help me?
Thanks.
Joao Rosa

 採用された回答

Fangjun Jiang
Fangjun Jiang 2011 年 12 月 10 日

0 投票

Type={'Type A','Type A','Type B','Type C','Type C'}.';
Value=[100,500,1000,100,200].';
[UniType,Ind_i,Ind_j]=unique(Type);
SumValue=accumarray(Ind_j,Value)
xlswrite('test.xls',[UniType,num2cell(SumValue)]);
SumValue =
600
1000
300

1 件のコメント

Joao
Joao 2011 年 12 月 11 日
Thanks for your help.

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

その他の回答 (1 件)

the cyclist
the cyclist 2011 年 12 月 10 日

0 投票

You could use the ismember command on the first column of the cell, to find indices to each unique value.
Then, for each value, sum over its indices.
Then use xlswrite to write back to Excel.

Community Treasure Hunt

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

Start Hunting!

Translated by