[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: simple vector to matrix transformation
From: |
Jonathan King |
Subject: |
Re: simple vector to matrix transformation |
Date: |
Tue, 22 Jun 1999 09:42:15 -0500 (CDT) |
On Tue, 22 Jun 1999, Daniel Heiserer wrote:
> address@hidden wrote:
> >
[snip]
> > Of course, the multiplication is inefficient. I seem to remember
> > there was a more direct way to do this transformation, but I can't
> > find it in the docs. Is there?
>
> Sure
> b=a*ones(1,4);
>
> you will see the efficiency once you go to bigger
> problems:
> octave:7> a=rand(1000,1);tic;b=a*ones(1,1000);toc
> ans = 0.22280
> octave:8> a=rand(1000,1);tic;c=diag(a)*ones(1000,1000);toc
> ans = 142.55
> octave:9> 142.55/0.22280
> ans = 639.81
>
> A speedup of a factor of 639 is OK or?
On my machine, this is a factor of 6 or so faster still in Matlab, anyway:
>> tic; b=a*ones(1,1000); toc
elapsed_time =
0.3294
>> tic; b=a(:,ones(1,1000)); toc
elapsed_time =
0.0562
If memory serves, octave was similarly faster using the indexing-only
approach.
Alas, memory has to serve at the moment since I just found out
that my recent upgrade to RH 6.0 fried my octave installation...and the
rpm package I could find cores out, too. :-( Yeah, I can remake the thing,
easily enough, but has anybody else built an rpm of 2.0.14 for x86 Linux?
If not, this might be my chance to do something useful for a change.
jking
---------------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL. To ensure
that development continues, see www.che.wisc.edu/octave/giftform.html
Instructions for unsubscribing: www.che.wisc.edu/octave/archive.html
---------------------------------------------------------------------