# Differences

This shows you the differences between two versions of the page.

 public:matlab_tips [2016/04/04 14:50]fangfufu old revision restored (2016/04/02 07:41) public:matlab_tips [2018/03/31 00:38] Line 1: Line 1: - ====== Matlab Tips ====== - ===== General tips ===== - - If you plan to use parallel for-loop, put the parfor statement in the outermost loop to reduce inter-process communication. - ===== Simple text progress bar ===== - - disp(' ​    '​);​ - for i = 1:x - fprintf('​\b\b\b\b\b\b%05.2f%%',​ i/x*100); - %%%%% Do your biddings here %%%%% - end - disp(' '); - ​ - ===== Highly unscientific benchmark of prod() ===== - ==== Sparse vs Dense ==== - - >> a = rand(1000); - >> b = eye(1000); - >> c = sparse(a); - >> d = sparse(b); - >> tic; for i = 1:10000; prod(a); end; toc - Elapsed time is 7.212577 seconds. - >> tic; for i = 1:10000; prod(b); end; toc - Elapsed time is 3.566560 seconds. - >> tic; for i = 1:10000; prod(c); end; toc - Elapsed time is 27.455137 seconds. - >> tic; for i = 1:10000; prod(d); end; toc - Elapsed time is 0.030041 seconds. - >> tic; for i = 1:10000; prod(a); end; toc - Elapsed time is 7.250969 seconds. - >> tic; for i = 1:10000; prod(b); end; toc - Elapsed time is 3.645549 seconds. - >> tic; for i = 1:10000; prod(c); end; toc - Elapsed time is 27.538796 seconds. - >> tic; for i = 1:10000; prod(d); end; toc - Elapsed time is 0.029214 seconds. - >> - - >> n = 100000; - >> a = rand(n,1); - >> b = 1; - >> tic; for i = 1:n; prod(a); end; toc; - Elapsed time is 4.849304 seconds. - >> tic; for i = 1:n; b = b * prod(a(i)); end; toc - Elapsed time is 0.004573 seconds. - >> ​ - ​ - - ==== Prod vs repeated multiplication ==== - === Script === - - clear; - n = 10000; - a = rand(n,1) * exp(1); - b = 1; - - tic; - for i = 1:n; - c = prod(a); ​ - end; - toc; - - tic; - for j = 1:n - for i = 1:n; - b = b * a(i); - end; - end - toc; - ​ - === Results === - - >> test - Elapsed time is 0.168450 seconds. - Elapsed time is 1.003991 seconds. - ​ - Note that with repeated multiplication your numerical accuracy will suffer too!
• public/matlab_tips.txt