You could try to avoid the loop:
tmp = repmat({' '}, length(strDay), 1);
datenum(cell2mat([strDay (:), tmp(:), strTime(:)]))
~edit~
A little bit of benchmarking of all the solutions so far:
% creating some bogus data
a = ones(10000,1).*(now.*rand(10000,1));
str = datestr(a,'yy.mm.dd HH:MM:SS.FFF');
strDay = cellstr(str(:,1:8));
strTime = cellstr(str(:,10:end));
%% jdl's original code
disp('jdl''s original code')
tic
nLines = length(strDay);
dblDate = zeros(1, nLines);
j = 1;
for i = 1 : nLines
dblDate(j) = datenum([strDay{i}, ' ', strTime{i}]);
j = j + 1;
end
toc
%% hmuster's solution
disp('hmuster''s solution')
tic
tmp = repmat({' '}, length(strDay), 1);% cell(size(str1));
b = datenum(cell2mat([strDay(:), tmp(:), strTime(:)]));
toc
%% ThijsW's solution
disp('ThijsW''s solution')
tic
strDay = cell2mat(strDay);
strTime = cell2mat(strTime);
dblDate = datenum([strDay, (' ')*ones(size(strTime)), strTime], 'yy.mm.dd HH:MM:SS.FFF');
toc
% jdl's solution
disp('jdl''s solution')
tic
dblDate = datenum(strDay, 'yy.mm.dd') + ...
datenum(strTime, 'HH:MM:SS.FFF') - ...
datenum('00:00:00.000', 'HH:MM:SS.FFF');
toc
This results in:
jdl's original code
Elapsed time is 19.624597 seconds.
hmuster's solution
Elapsed time is 4.029291 seconds.
ThijsW's solution
Elapsed time is 0.183376 seconds.
jdl's solution
Elapsed time is 0.222996 seconds.