help-octave
[Top][All Lists]
Advanced

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

Re: Simple Matrix Manipulation Extressions


From: Dirk Laurie
Subject: Re: Simple Matrix Manipulation Extressions
Date: Mon, 10 Nov 1997 11:18:28 +0200 (SAT)

john wrote:
> 
>       Are there any simple expressions for these octave expressions:
> In each case I introduce loops, multiplications or something a bit
> horrible to achieve something fairly simple.
> 
> 5. given a (big) matrix A, and (small) vector V, for each element a
>    of A find the number of V elements smaller than a
> 
>         count = zeros(size(A)) ;
>         for r=1:n
>           count = count + (V(r) < A) ;
>         endfor
> 
>    Is there a way to avoid the loop? we can sort the V if that helps.
> 
>    For A a scalar we might do something like
> 
>         count = sum( V < A ) ;
> 

 do_fortran_indexing=1; 
 [x,j]=sort(A(:));                 % The method works for two vectors
 [x,k]=sort([x; v(:)]);   
 m=1:length(k); m(k)=1:length(k);
 count=A; count(j)=m(1:length(j))-(1:length(j));

I suppose this is `a bit horrible' but it does have complexity
less than length(x)*length(v) and there are no loops.  It will
not work properly if the internal sorting algorithm of octave
allows equal elements to exchange places.

Dirk



reply via email to

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