[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: drop array elements
"J.D. Smith" wrote:
> Matthew Kay wrote:
> > Would anyone have any suggestions for an easy way
> > to drop elements in an array? For example, say 'a'
> > is a 14x1024 array and 'b' is a 1x25 array of row
> > indicies in 'a' that should be dropped. Is there
> > a simple command for re-assigning 'a', without the
> > 25 rows indicated in 'b'?
> a=a[*,where(histogram(b,MIN=0,MAX=(size(a,/DIMENSIONS))-1,BINSIZE=1) eq 0)]
> The real meat here is finding a list of indices which do not contain the
> elements of b. There are many ways to do this, but this is a fast one.
I just *had* to understand this one. Here's another way of implementing
;- Get number of rows in a
dims = (size(a, /dimensions))
;- Create index array for rows of a (1=keep the row, 0=discard the row)
index = replicate(1L, nrows)
index[b] = 0L
;- Locate the indices of rows we wish to keep
keep = where(index eq 1)
;- Extract the rows we wish to keep
a = (temporary(a))[*, keep]