Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Preallocation in MATLAB R2009a
Date: Wed, 5 Aug 2009 14:16:05 +0000 (UTC)
Organization: &#28145;&#22323;&#36808;&#29790;&#29983;&#29289;&#21307;&#30103;&#30005;&#23376;&#32929;&#20221;&#26377;&#38480;&#20844;&#21496;
Lines: 13
Message-ID: <h5c475$639$1@fred.mathworks.com>
Reply-To: <HIDDEN>
NNTP-Posting-Host: webapp-03-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1249481765 6249 172.30.248.38 (5 Aug 2009 14:16:05 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Wed, 5 Aug 2009 14:16:05 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1101180
Xref: news.mathworks.com comp.soft-sys.matlab:561009


It's known that to use a matrix variable "a" with changeless size m,n,we should preallocate memory for the variable to achieve good performance.Usually,We use "a= zeros(m,n)" to preallocate.
But I find in R2009a using "a(m,n) = 0" to preallocate is much fast than "a = zeros(m,n)",especially with large m,n. The following shows this:
>> clear
>> tic;a = zeros(10000,11000);toc
Elapsed time is 1.054111 seconds.
>> clear
>> tic;a (10000,11000) = 0;toc
Elapsed time is 0.000049 seconds.

I think in R2009a,"a(m,n) = 0" do NOT really assign each element of a with 0,but just allocate a certain zone in memory for a.When you visit a certain element of a,the assignment happens,  is that right? Thanks to all.

Bye the way,
My computer's  disposition:  Intel Core2 Duo CPU T8100 @ 2.1GHz 2.1GHz,   2G memory .