"Is there any easier or more efficient way to calculate SF when there is different k?"
Do NOT use numbered variables, they are a sign that you are doing something wrong (in particular, you are forcing meta-data into variable names).
A much more efficient use of MATLAB would be to use vectors:
I = 1:100;
kV = [0.3,1,3,5,8,13,15,18,23,25,28];
SV = bsxfun(@times,kV,log(I(:)))
SV = kV.*log(I(:))