equal
deleted
inserted
replaced
|
1 #!/usr/bin/python |
|
2 |
|
3 import pylab as pl |
|
4 |
|
5 def makezero(B, gap=None): |
|
6 B = pl.array(B) # B is a vector! |
|
7 B = B.squeeze() |
|
8 if len(B.shape)!=1: |
|
9 print "B must be a vector!" |
|
10 exit() |
|
11 if gap == None: |
|
12 gap = 1e8 |
|
13 temp = B[pl.find(B)] |
|
14 temp = -pl.sort(-abs(temp)) |
|
15 ratio = temp[:-1]/pl.float32(temp[1:]) |
|
16 if pl.find(ratio>gap).size != 0: |
|
17 min_ind = min(pl.find(ratio>gap)) |
|
18 our_eps = temp[min_ind+1] |
|
19 zeroind = pl.find(abs(B)<=our_eps) |
|
20 B[zeroind] = 0 |
|
21 return pl.atleast_2d(B) |
|
22 |
|
23 if __name__== "__main__": |
|
24 B = pl.array([2,3,.000000000004,5,.00006]) |
|
25 print B |
|
26 B = makezero(B) |
|
27 print B |
|
28 |