MATLAB: For loop to control cellarray whether it is changing or not.

cell arraysfor loop

ids=[{'100'};{'100'};{'100'};{'p200'};{'p200'};{'p300'};{'p300'};{'pp400'};{'pp400'}]; %cell
data=[100;110;120;130;140;150;160;170;180]; %double
%I wanna determine which rows are same in ids and where changing is starting, then I need to compute this algorithm like that;
a_100=(100+110+120); %they belongs '100'
a_p200=(130+140); %for 'p200'
a_p300=(150+160); %for 'p300'
a_pp400=(170+180); %for pp400
%how can I perform this calculation with loop w.r.t ids cellarray, like a(i)?

Best Answer

  • [a,~,c] = unique(ids);
    out = [strcat('a_',a),num2cell(accumarray(c,data))];