1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| function test
C{1,1} = 'a';
C{1,2} = 1;
C{2,1} = 'b';
C{2,2} = 2;
C{3,1} = 'c';
C{3,2} = 3;
N = [1:10 20:10:100 200:50:1000 2000:250:5000];
tA = zeros(5,numel(N));
tB = zeros(5,numel(N));
tC = zeros(5,numel(N));
for n=1:numel(N)
CC = repmat(C,N(n),1);
for k = 1:5
tic
S1 = sum([CC{:,2}]);
tA(k,n) = toc;
end
for k = 1:5
tic
S2 = sum(cell2mat(CC(:,2)));
tB(k,n) = toc;
end
for k = 1:5
tic
S3 = 0;
for u = 1:size(CC,1)
S3 = S3 + CC{u,2};
end
tC(k,n) = toc;
end
clear functions
end
figure
p=plot(N,1000*mean(tA),'r-s',N,1000*mean(tB),'b-*',N,1000*mean(tC),'m-o');
xt = get(gca,'xtick');
set(gca,'xticklabel',num2str(3*xt(:)))
xlabel('Nombre de lignes du tableau de cellules')
ylabel('Temps (ms)')
legend(p,{'sum([CC{:,2}])' 'sum(cell2mat(CC(:,2)))' 'Boucle FOR-END'},'location','northwest') |