MATLAB: Summation by using loops and cells

cell arraysfor loopMATLABsum

K=9;
L Range of M (for each L)
0.5 2 6 8 10 12 14 16
1 2 6 8
1.5 2 6 8 10 12
2 2 6 8 10
2.5 2 6 8 10
3 2 6 8 10 12 14 16
I have a constant parameter say K. Now for different range of L (0.5:0.5:3), I have different values of M, as seen in the table.
I need to carry a summation operation using 'for loops' such that:
sum=(K*0.5*2)+(K*0.5*6)+(K*0.5*8)+……………..+ (second line)……+ (sixth line)+ (K*3*16)
[Note: In '(K*0.5*2)' , 0.5 is the first element of L, and 2 is the first value of M for that particular L ]

Best Answer

Looks nasty although there are efficient solutions which avoids loop:
K=9;
L =0.5:0.5:3;
M{1}=[2 6 8 10 12 14 16];
M{2}=[2 6 8];
M{3}=[2 6 8 10 12];
M{4}=[2 6 8 10];
M{5}=[2 6 8 10];
M{6}=[2 6 8 10 12 14 16];
n=numel(L);
sums=cell(1,n);
for i = 1:n
sums{i}=sum(K.*L(i).*[M{i}]);
end
celldisp(sums) %each cell corresponds to each L and it's M ranges
command window:
>> COMMUNITY
sums{1} =
306
sums{2} =
144
sums{3} =
513
sums{4} =
468
sums{5} =
585
sums{6} =
1836
>>