navin - don't create variables dynamically (which is what you intend to do with variables names l1, l2, l3, ...). See Stephen's post at TUTORIAL: Why Variables Should Not Be Named Dynamically (eval) to understand why this might not be a great idea. Instead, load the images into a cell array.
myImages = cell(20,1);
pathToImages = '/Users/yourname/whatever'; % the path to the folder of images
for k = 1:20
filename = sprintf('single_part%03d.png', k); % or whatever extension for your image
myImages{k,1} = imread(fullfile(pathToImages, filename));
end