El domingo, 23 de febrero de 2014 02:36:57 UTC-6, Mauro escribió:
>
>
> On Sun, 2014-02-23 at 05:51, [email protected] <javascript:> wrote: 
> > El viernes, 21 de febrero de 2014 08:25:00 UTC-6, Mauro escribió: 
> >> 
> >> > Given a matrix, which will be large (say 10^5 x 10^5), I need to 
> extract 
> >> > the list of indices (i.e. the pairs (x,y) of positions) of those 
> places 
> >> in 
> >> > the matrix 
> >> > where the value stored satisfies a certain condition. For a minimal 
> >> > example, the condition can just be that the value is greater than 
> 0.5. 
> >> 
> >> Give you a logical array which you can use for indexing: 
> >>   r.>.5 
> >> and to get the linear indices 
> >>   find(r.>.5) 
> >> 
> > 
> > Great, didn't know about find. 
> > Maybe I should just rewrite everything thinking in terms of 1D arrays. 
> > (This is something I have taught in several courses, 
> > but for some reason it didn't occur to me!) 
>
> No need to rewrite in terms of 1D arrays.  You can index both with a 
> linear index or with a 2D index (or higher D, depending on the array): 
>
> julia> a = [1 2; 3  4] 
> 2x2 Array{Int64,2}: 
>  1  2 
>  3  4 
>
> julia> a[2] 
> 3 
>
> julia> a[2,1] 
> 3 
>
> If you want to translate between the two use ind2sub and sub2ind: 
>
> julia> ind = ind2sub(size(a), 2) 
> (2,1) 
>
> julia> a[ind...] 
> 3 
>

Excellent, thanks! 

Reply via email to