from
The speed of reading and writing matrix by function
by Su Dongcai
A simple demonstration on the speed of reading and writing matrix by function
|
| check_rwSpeed(data, N_iters)
|
function check_rwSpeed(data, N_iters)
%effect: a simple demonstration on the running time of reading/writing
%matrix by matlab functions
%Example:
%1. check the speed of reading matrix:
%N=100000;
%N_iters = 100;
%data = rand(1, N);
%check_rwSpeed(data, N_iters);
%2. check the speed of writting matrix:
%At first you should uncomment the 2 commented lines begin with the symbol
% "%#", then do the same thing as following:
%N=100000;
%N_iters = 1000;
%data = rand(1, N);
%check_rwSpeed(data, N_iters);
% Purely reading:
% It will take no time to complete "check_readingData" no matter how large size the "data" is.
%
% Reading and Writing:
% if you umcommend the 2 commended lines begin with "%#", you will find:
% 1. The running time of "check_readingData" increase dramatically when the size of data increase.
% 2. data(end) never change.
%
% Conclusion:
% Reading a matrix M in a function is straightforward, it just access the pointer of the matrix directly and take no time to complete.
% Writting a matrix M in a function is more complicated, first, it will atomatically create a copy of M called M_buffer, then it will changed the
% corresponding element in M_buffer rather than in M.
%Functions are composed by Su Dongcai (suntree4152@gmail.com) on 2009/11/15
tic,
%generate an array of N random element "data"
for i=1:N_iters
s_check_rwSpeed(data)
%#data(end)
end
toc;
function s_check_rwSpeed(data)
tmp = data(1:10);
%#data(end) = data(end)+1;
|
|
Contact us at files@mathworks.com