MATLAB: Sum of Cells next to a String

cell arraysimporting excel datasum

Hi all,
I imported an excel sheet of numbers next to a string (a category) in an array and having trouble finding a way to get the sum of all the numbers under a category. For example:
Let's say I want the sum of all the numbers to the right of 'VLGMC' and 'DLG'. Is there a way I could do this?
Thanks,
Tony

Best Answer

% creating sample data
data={'VLGMC', 1, 'DLG', 4, 'a', 7; ...
'VLGMC', 2, 'c', 5, 'a', 8; ...
'b', 3, 'DLG', 6, 'a', 9};
% summing numbers next to VLGMC
mask=strcmpi(data,'VLGMC');
[row,col]=find(mask);
idx=sub2ind(size(data),row,col+1);
sum_VLGMC=sum(cell2mat(data(idx)))
sum_VLGMC =
3
% summing numbers next to DLG
mask=strcmpi(data,'DLG');
[row,col]=find(mask);
idx=sub2ind(size(data),row,col+1);
sum_DLG=sum(cell2mat(data(idx)))
sum_DLG =
10
The code would be much easier if you have all your text on one column and the numbers on a second column.