help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: efficiency


From: Daniel Heiserer
Subject: Re: efficiency
Date: Tue, 01 Feb 2000 08:40:30 +0100

address@hidden wrote:
> 
>   Hello,
> 
> #  Assume I have a few hundred matrices:
> #  k_0004711
> #  k_0004712
> #  .........
> #  And I want to loop through a subset of them
> #  with a certain function:
> #  like:
> 
> #   a=myfunc(b,c,K__00047[1-5])   # in shell regexps .... ;-)
> #          call for each matrix
> 
> #  What is better/more efficient:
> 
> #  1) copying the data via a temporary variable
> #  for jj=1:5
> #          tmp=eval(sprintf('k_%7d',47*1000+jj));
> #          a=myfunc(b,c,tmp);
> #  end
> #  % Which probably means copying data in core each time .......
> #  % for big loops not nice .......
> #  or
> 
>    What about
> 
> jj=1:5;
> eval(sprintf("a = myfunc(b,c,k_%7d);",47*1000+jj)) ;
> 
>   ? There is a single eval, and not much code around it. Timing seems
> improved, at least in the simplified case below :
> 
> octave:7> mytic(); eval(sprintf("k%04d=eye(3);",0:1000)) ; mytic()

Wow. I didn't think of this.
VERY nice ;-) An implicit loop. Cool.
is the mytic your private routine? I dont have it.

> ans = 0.29000
> octave:8> mytic(); for i=1:1000, eval(sprintf("k%04d=eye(3);",i)) ; end ; 
> mytic()
> ans = 0.66000
> 
>  where mytic() returns the time since last call to mytic().
> 
> #  3) put all the crap in ONE Monster array, store the indices somewhere
> #  and do it like this and making all the code realy ugly .......
> 
> #  a=myfunc(a,b,K_monster,K_indices);
> #  % is here any data copied?
> #  % and does it only make the code unreadible
> 


Thanks Daniel



-----------------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.che.wisc.edu/octave/octave.html
How to fund new projects:  http://www.che.wisc.edu/octave/funding.html
Subscription information:  http://www.che.wisc.edu/octave/archive.html
-----------------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]