comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » ERROR: Attempt to subscript B with is out of range
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: ERROR: Attempt to subscript B with is out of range [message #89913 is a reply to message #89912] Wed, 24 December 2014 06:28 Go to previous messageGo to previous message
Helder Marchetto is currently offline  Helder Marchetto
Messages: 520
Registered: November 2011
Senior Member
On Wednesday, December 24, 2014 12:52:13 PM UTC+1, g.na...@gmail.com wrote:
> Hi
>
> I've got a 3D array B[100,200,200]. My array B sometimes contains negative values and other times very large values. In order to make sure that when there are either negative or very large values will set to zero I wrote the following code:
>
> FOR i=0L,199 DO BEGIN
> FOR j=0L,199 DO BEGIN
> WRONG = total((B[*,i,j] LT 0) OR (B[*,i,j] GT 10000))
> IF WRONG GT 0 THEN B[*,i,j]=0
> ENDFOR
> ENDFOR
>
> I got the error Attempt to subscript B with j is out of range. I cannot figure out with this happen with the j variable. Any idea?

Hi,
that's not the IDL way. Here is one way of doing it (didn't check, but I think it is also a lot faster):

;create an array
b = long(randomu(s,100,200,200)*100)
b[50,100,100] = -12
b[51,101,101] = 20000
;look for the bad values
pos = where((a lt 0) or (a gt 10000), cnt)
if cnt gt 0 then b[pos]=0l

There are other ways of doing this sort of search for values in an array. Have a look at older posts.

Cheers,
h
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Nested data structures
Next Topic: eps issues with ps_start

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 12:57:28 PDT 2025

Total time taken to generate the page: 0.88106 seconds