Re: Making a large matrix
- To: mathgroup at smc.vnet.net
- Subject: [mg14846] Re: [mg14832] Making a large matrix
- From: Andrew Watson <abwatson at mail.arc.nasa.gov>
- Date: Fri, 20 Nov 1998 02:16:55 -0500
- Sender: owner-wri-mathgroup at wolfram.com
At 10:29 PM -0800 11/17/98, Ersek, Ted R wrote:
>Consider the timing experiments below for making a large matrix of
>random real numbers.
>
>In[1]:=
>Table[Table[Random[],{1000}],{500}];//Timing Out[1]=
>{17.47 Second,Null}
>
>In[2]:=
>Table[Range[Random[],1000],{500}];//Timing Out[2]=
>{9.56 Second,Null}
>
>In[3]:=
>MakeMatrix=Compile[{m,n},Table[Range[Random[],n],{m}]];
> (* Make an (m,n) matrix. *)
>
>In[4]:=
>MakeMatrix[500,1000];//Timing
>Out[4]=
>{5.82 Second,Null}
>
>The last method is the fastest method I can come up with. Can any of
>you find a faster way to make a large matrix with Mathematica? (short
>of using MathLink to run an executable program).
>
>Cheers,
>Ted Ersek
The last may be the fastest, but they are not random numbers.
How about:
In[1]:=
<<Statistics`ContinuousDistributions`
Timing[tst=RandomArray[UniformDistribution[-1,1],{1000,500}];]
Out[2]=
{9.7 Second,Null}
(Mac G3 266 MHz)
Regards,
Andrew B. Watson
MS 262-2
NASA Ames Research Center
Moffett Field, CA 94035-1000
(650) 604-5419 (650) 604-0255 fax
abwatson at mail.arc.nasa.gov http://vision.arc.nasa.gov/